1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wBekvam-vue-shop-admin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
api接口文档.md 58 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 06:10 2fb251f

1. 电商管理后台 API 接口文档

1.1. API V1 接口说明

  • Интерфейс базовый адрес: http://127.0.0.1:8888/api/private/v1/
  • Сервер поддерживает CORS для междоменного доступа
  • Для аутентификации в API V1 используется единый токен
  • Необходимые для авторизации API должны использовать поле Authorization с токеном в заголовке запроса
  • Статус обозначается с помощью HTTP Status Code
  • Формат возвращаемых данных — JSON

1.1.1. Поддерживаемые методы запросов

  • GET (SELECT): получение ресурсов (одного или нескольких).
  • POST (CREATE): создание нового ресурса на сервере.
  • PUT (UPDATE): обновление ресурса на сервере (клиент предоставляет полный обновлённый ресурс).
  • PATCH (UPDATE): обновление ресурса на сервере (клиент предоставляет изменённые атрибуты).
  • DELETE (DELETE): удаление ресурса с сервера.
  • HEAD: получение метаданных ресурса.
  • OPTIONS: получение информации о том, какие свойства ресурса могут быть изменены клиентом.

1.1.2. Общие описания состояний возврата

Состояние кода Значение Описание
200 OK Запрос выполнен успешно
201 CREATED Создание выполнено успешно
204 DELETED Удаление выполнено успешно
400 BAD REQUEST Адрес запроса не существует или содержит неподдерживаемые параметры
401 UNAUTHORIZED Нет авторизации
403 FORBIDDEN Доступ запрещён
404 NOT FOUND Ресурс не найден
422 Unprocesable entity [POST/PUT/PATCH] При создании объекта возникает ошибка проверки
500 INTERNAL SERVER ERROR Внутренняя ошибка

1.2. Вход

1.2.1. Интерфейс входа

  • Путь запроса: login
  • Метод запроса: post
  • Параметры запроса
Параметр имени Описание параметра Примечание
username Имя пользователя Не может быть пустым
password Пароль Не может быть пустым
  • Ответные параметры
Параметр имени Описание параметра Примечание
id Идентификатор пользователя
rid Идентификатор роли пользователя
username Имя пользователя
mobile Номер мобильного телефона
email Электронная почта
token Токен на основе JWT
  • Данные ответа
{
    "data": {
        "id": 500,
        "rid": 0,
        "username": "admin",
        "mobile": "123",
        "email": "123@qq.com",
        "token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE1MTI1NDQyOTksImV4cCI6MTUxMjYzMDY5OX0.eGrsrvwHm-tPsO9r_pxHIQ5i5L1kX9RX444uwnRGaIM"
    },
    "meta": {
        "msg": "Вход выполнен успешно",
        "status": 200
    }
}

1.3. Управление пользователями

1.3.1. Список данных пользователей

  • Путь запроса: users
  • Метод запроса: get
  • Параметры запроса
Параметр имени Описание параметра Примечание
query Параметры поиска Может быть пустым
pagenum Текущая страница Не может быть пустой
pagesize Количество элементов на странице Не может быть пустым
  • Ответные параметры
Параметр имени Описание параметра Примечание
totalpage Общее количество записей
pagenum Текущая страница
users Набор данных пользователя
  • Данные ответа
{
    "data": {
        "totalpage": 5,
        "pagenum": 4,
        "users": [
            {
                "id": 25,
                "username": "tige117",
                "mobile": "18616358651",
                "type": 1,
                "email": "tige112@163.com",
                "create_time": "2017-11-09T20:36:26.000Z",
                "mg_state": true, // текущее состояние пользователя
                "role_name": "Администратор Chao Ji"
            }
        ]
    },
    "meta": {
        "msg": "Получение выполнено успешно",
        "status": 200
    }
}

1.3.2. Добавление пользователя

  • Путь запроса: users
  • Метод запроса: post
  • Параметры запроса
Параметр имени Описание параметра Примечание
username Имя пользователя Не может быть пустым
password Пароль пользователя Не может быть пустым
email Электронная почта Может быть пустой
mobile Мобильный телефон Может быть пустым
  • Ответные параметры
Параметр имени Описание параметра Примечание
id Идентификатор пользователя
rid Идентификатор роли пользователя
username Имя пользователя
mobile Номер мобильного телефона
email Электронная почта
  • Данные ответа
{
    "data": {
        "id": 28,
        "username": "tige1200",
        "mobile": "test",
        "type": 1,
        "openid": "",
        "email": "test@test.com",
        "create_time": "2017-11-10T03:47:13.533Z",
        "modify_time": null,
``` **1.3.3 Изменение состояния пользователя**

*Запрос пути:* users/:uId/state/:type
*Метод запроса:* put
*Параметры запроса:*
| Параметр | Описание | Примечание |
| --- | --- | --- |
| uId | Идентификатор пользователя | Не может быть пустым, передаётся в URL |
| type | Состояние пользователя | Не может быть пустым, передаётся в URL, значение true или false |

*Ответные данные:*
```json
{
  "data": {
    "id": 566,
    "rid": 30,
    "username": "admin",
    "mobile": "123456",
    "email": "bb@itcast.com",
    "mg_state": 0
  },
  "meta": {
    "msg": "Состояние установлено успешно",
    "status": 200
  }
}

1.3.4 Запрос информации о пользователе по ID

Путь запроса: users/:id Метод запроса: get Параметры запроса:

Параметр Описание Примечание
id Идентификатор пользователя Не может быть пустым, передаётся в URL

Ответные параметры:

Параметр Описание Примечание
id Идентификатор пользователя
role_id Идентификатор роли
mobile Номер мобильного телефона
email Адрес электронной почты

Ответные данные:

{
    "data": {
        "id": 503,
        "username": "admin3",
        "role_id": 0,
        "mobile": "00000",
        "email": "new@new.com"
    },
    "meta": {
        "msg": "Запрос выполнен успешно",
        "status": 200
    }
}

1.3.5 Отправка изменений для пользователя

Путь запроса: users/:id Метод запроса: put Параметры запроса:

Параметр Описание Примечание
id Идентификатор пользователя Не может быть пустым, параметр URL:id
email Электронная почта Может быть пустым
mobile Мобильный телефон Может быть пустым

Ответные параметры:

Параметр Описание Примечание
id Идентификатор пользователя
role_id Идентификатор роли
mobile Номер мобильного телефона
email Адрес электронной почты

Ответные данные:

/* 200 означает успех, 500  неудачу */
{
    "data": {
        "id": 503,
        "username": "admin3",
        "role_id": 0,
        "mobile": "111",
        "email": "123@123.com"
    },
    "meta": {
        "msg": "Обновление выполнено успешно",
        "status": 200
    }
}

1.3.6 Удаление отдельного пользователя

Путь запроса: users/:id Метод запроса: delete Параметры запроса:

Параметр Описание Примечание
id Идентификатор пользователя Не может быть пустым, параметр URL:id

Ответные параметры и данные:

{
    "data": null,
    "meta": {
        "msg": "Удаление выполнено успешно",
        "status": 200
    }
}

1.3.7 Назначение роли пользователю

Путь запроса: users/:id/role Метод запроса: put Параметры запроса:

Параметр Описание Примечание
id Идентификатор пользователя Не может быть пустым, параметр URL:id
rid Идентификатор роли Не может быть пустым, тело запроса

Ответные параметры:

Параметр Описание Примечание
id Идентификатор пользователя
role_id Идентификатор роли
mobile Мобильный телефон
email Адрес электронной почты

Ответные данные:

{
    "data": {
        "id": 508,
        "rid": "30",
        "username": "asdf1",
        "mobile": "123123",
        "email": "adfsa@qq.com"
    },
    "meta": {
        "msg": "Назначение роли выполнено успешно",
        "status": 200
    }
}

1.4. Управление правами доступа

1.4.1 Список всех прав доступа

Путь запроса: rights/:type Метод запроса: get Параметры запроса:

Параметр Описание Примечание
type Тип Значение list или tree, list отображает список прав, tree отображает права в виде дерева, параметр URL:type

Ответные параметры:

Параметр Описание Примечание
id Идентификатор права
authName Описание права
level Уровень права
pid Идентификатор родительского права
path Соответствующий путь доступа

Ответные данные (type=list):

  {
    "data": [
        {
            "id": 101,
            "authName": "Управление товарами",
            "level": "0",
            "pid": 0,
            "path": null
        },
        {
            "id": 102,
            "authName": "Управление заказами",
            "level": "0",
            "pid": 0,
            "path": null
        }
    ],
    "meta": {
        "msg": "Получение списка прав выполнено успешно",
        "status": 200
    }
}

Ответные данные (type=tree):

  {
    data: [
      {
        id: 101,
        authName: 'Управление товарами',
        path: null,
        pid: 0,
        children: [
          {
            id: 104,
            authName: 'Список товаров',

``` **1.4.2. Левый боковой меню прав доступа**

Запрос пути: menus
Запрос метода: get
Ответ данных:

```json
{
    "data": {
        "id": 101,
        "authName": "Управление товарами",
        "path": null,
        "children": [
            {
                "id": 104,
                "authName": "Список товаров",
                "path": null,
                "children": []
            }
        ]
    },
    "meta": {
        "msg": "Получение списка меню успешно",
        "status": 200
    }
}

1.5. Управление ролями

1.5.1. Список ролей

Путь запроса: roles Метод запроса: get Описание ответа данных:

  • Первый слой — информация о роли.
  • Второй слой и далее — описание прав доступа, всего три уровня прав доступа.
  • Последний уровень прав доступа не содержит свойства children.

Ответ данных:

{
  "data": [
    {
      "id": 30,
      "roleName": "Руководитель",
      "roleDesc": "Технический руководитель",
      "children": [
        {
          "id": 101,
          "authName": "Управление товарами",
          "path": null,
          "children": [
            {
              "id": 104,
              "authName": "Список товаров",
              "path": null,
              "children": [
                {
                  "id": 105,
                  "authName": "Добавить товар",
                  "path": null
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "meta": {
    "msg": "Успешное получение",
    "status": 200
  }
}

1.5.2. Добавление роли

Путь запроса: roles Метод запроса: post Параметры запроса:

Параметр Описание Примечание
roleName Название роли Не может быть пустым
roleDesc Описание роли Может быть пустым

Ответ параметров:

Параметр Описание Примечание
roleId Идентификатор роли
roleName Название роли
roleDesc Описание роли

Ответ данных:

{
  "data": {
    "roleId": 40,
    "roleName": "admin2",
    "roleDesc": "admin2Desc"
  },
  "meta": {
    "msg": "Создание успешно",
    "status": 201
  }
}

1.5.3. Запрос роли по идентификатору

Путь запроса: roles/:id Метод запроса: get Параметры запроса:

Параметр Описание Примечание
:id Идентификатор роли Нельзя оставить пустым, передаётся в URL

Ответ параметров:

Параметр Описание Примечание
roleId Идентификатор роли
roleName Название роли
roleDesc Описание роли

Ответ данных:

{
  "data": {
    "roleId": 31,
    "roleName": "Тестовая роль",
    "roleDesc": "Ответственный за тестирование"
  },
  "meta": {
    "msg": "Получено успешно",
    "status": 200
  }
}

1.5.4. Изменение и отправка роли

Путь запроса: roles/:id Метод запроса: put Параметры запроса:

Параметр Описание Примечание
:id Идентификатор роли Нельзя оставить пустым, передаётся в URL
roleName Название роли Нельзя оставить пустым
roleDesc Описание роли Можно оставить пустым

Ответ данных:

{
  "data": {
    "roleId": 31,
    "roleName": "Тестовая роль",
    "roleDesc": "Описание тестовой роли"
  },
  "meta": {
    "msg": "Получено успешно",
    "status": 200
  }
}

1.5.5. Удаление роли

Путь запроса: roles/:id Метод запроса: delete Параметры запроса:

Параметр Описание Примечание
:id Идентификатор роли Нельзя оставить пустым, передаётся в URL

Ответ данных:

{
  "data": null,
  "meta": {
    "msg": "Удаление успешно",
    "status": 200
  }
}

1.5.6. Назначение прав роли

Путь запроса: roles/:roleId/rights Метод запроса: post Параметры запроса (передаются через тело запроса):

Параметр Описание Примечание
:roleId Идентификатор роли Нельзя оставить пустым, передаётся в URL
rids Список идентификаторов прав (строка, разделённая запятыми) Включает все выбранные и полувыбранные ключи, включая права первого, второго и третьего уровней, включая 1, 2 и 3

Ответ данных:

{
  "data":
} **Нулевой ответ:**

null, "meta": { "msg": "Обновление успешно", "status": 200 } }


**Ответ на запрос 1.5.7 «Удаление роли с определёнными правами»:**

```json
{
  "data": [
    {
      "id": 101,
      "authName": "Управление товарами",
      "path": null,
      "children": [
        {
          "id": 104,
          "authName": "Список товаров",
          "path": null,
          "children": [
            {
              "id": 105,
              "authName": "Добавить товар",
              "path": null
            },
            {
              "id": 116,
              "authName": "Изменить",
              "path": null
            }
          ]
        }
      ]
    }
  ],
  "meta": {
    "msg": "Отмена прав доступа прошла успешно",
    "status": 200
  }
}

Ответ на запрос 1.6.1 «Список данных категорий товаров»:

{
    "data": [
        {
            "cat_id": 1,
            "cat_name": "Бытовая техника",
            "cat_pid": 0,
            "cat_level": 0,
            "cat_deleted": false,
            "children": [
                {
                    "cat_id": 3,
                    "cat_name": "Телевизоры",
                    "cat_pid": 1,
                    "cat_level": 1,
                    "cat_deleted": false,
                    "children": [
                        {
                            "cat_id": 6,
                            "cat_name": "Криволинейные телевизоры",
                            "cat_pid": 3,
                            "cat_level": 2,
                            "cat_deleted": false
                        },
                        {
                            "cat_id": 7,
                            "cat_name": "Haier",
                            "cat_pid": 3,
                            "cat_level": 2,
                            "cat_deleted": false
                        }
                    ]
                }
            ]
        }
    ],
    "meta": {
        "msg": "Получение успешно",
        "status": 200
    }
}

Ответ на запрос 1.6.2 «Добавление категории»:

{
    "data": {
        "cat_id": 62,
        "cat_name": "Рамки для фотографий",
        "cat_pid": "1",
        "cat_level": "1"
    },
    "meta": {
        "msg": "Создание успешно",
        "status": 201
    }
}

Ответ на запрос 1.6.3 «Поиск категории по id»:

{
    "data": {
        "cat_id": 3,
        "cat_name": "Кухонная и бытовая техника",
        "cat_pid": 0,
        "cat_level": 0
    },
    "meta": {
        "msg": "Успешное получение",
        "status": 200
    }
} ### 1.6.4. Редактирование категории

- Путь запроса: categories/:id
- Метод запроса: put
- Параметры запроса

| Параметр | Описание | Примечание                             |
| ------- | ------- | -------------------------------------- |
| :id     | ID категории | Не может быть пустым, передаётся в URL  |
| cat_name | Название категории | Нельзя оставлять пустым. Этот параметр помещается в тело запроса |

- Ответные данные

{ "data": { "cat_id": 22, "cat_name": "Селфи-палка", "cat_pid": 7, "cat_level": 2 }, "meta": { "msg": "Обновление успешно", "status": 200 } }

### 1.6.5. Удаление категории

- Путь запроса: categories/:id
- Метод запроса: delete
- Параметры запроса

| Параметр | Описание | Примечание |
| -------- | -------- | ---------- |
| :id      | ID категории | Нельзя оставлять пустым, передаётся в URL |

- Ответные данные

{ "data": null, "meta": { "msg": "Удаление успешно", "status": 200 } }

## 1.7. Управление параметрами категорий

### 1.7.1. Список параметров

- Путь запроса: categories/:id/attributes
- Метод запроса: get
- Параметры запроса

| Параметр | Описание                                       | Примечание                                           |
| -------- | -------------------------------------------- | ---------------------------------------------------- |
| :id      | Идентификатор категории                        | Нельзя оставлять пустым, передаётся в URL              |
| sel      | [only, many]                                    | Нельзя оставлять пустым; используется для получения статических или динамических параметров категории |

- Ответные параметры

| Параметр                | Описание                                                   | Примечание |
|------------------------|----------------------------------------------------------|------------|
| attr_id                 | Идентификатор параметра категории                          |            |
| attr_name               | Имя параметра категории                                     |            |
| cat_id                  | Категория, к которой относится параметр                     |            |
| attr_sel                | only: поле ввода (уникальное значение) <br> many: список на стороне сервера / одиночный выбор на стороне клиента |            |
| attr_write              | manual: ручная запись <br> list: выбор из списка           |            |
| attr_vals               | Если attr_write:list, то имеет значение, которое разделено запятыми |            |

- Ответные данные

{ "data": [ { "attr_id": 1, "attr_name": "cpu", "cat_id": 22, "attr_sel": "only", "attr_write": "manual", "attr_vals": "ffff" } ], "meta": { "msg": "Получение успешно", "status": 200 } }


### 1.7.2. Добавление динамического параметра или статического свойства

- Путь запроса: categories/:id/attributes
- Метод запроса: post
- Параметры запроса

| Параметр    | Описание                                         | Примечание                        |
| ----------- | ------------------------------------------------ | ---------------------------------- |
| :id         | Идентификатор категории                           | Нельзя оставлять пустым, передаётся в URL |
| attr_name   | Имя параметра                                     | Нельзя оставлять пустым              |
| attr_sel    | [only,many]                                        | Нельзя оставлять пустым              |
| attr_vals   | Если это many, необходимо указать опции значений, разделённые запятыми | [Необязательный параметр] |

- Ответные данные

{ "data": { "attr_id": 44, "attr_name": "Тестовый параметр", "cat_id": "1", "attr_sel": "many", "attr_write": "list", "attr_vals": "a,b,c" }, "meta": { "msg": "Создание успешно", "status": 201 } }


### 1.7.3. Удаление параметра

- Путь запроса: categories/:id/attributes/:attrid
- Метод запроса: delete
- Параметры запроса

| Параметр  | Описание | Примечание         |
| --------- | -------- | ------------------ |
| :id       | Идентификатор категории | Нельзя оставлять пустым, передаётся в URL |
| :attrid   | Идентификатор параметра | Нельзя оставлять пустым, передаётся в URL |

- Ответные данные

{ "data": null, "meta": { "msg": "Успешное удаление", "status": 200 } }


### 1.7.4. Запрос параметра по идентификатору

- Путь запроса: categories/:id/attributes/:attrId
- Метод запроса: get
- Параметры запроса

| Параметр     | Описание                                               | Примечание                           |
| ------------- | ----------------------------------------------------- | ------------------------------------ |
| :id          | Идентификатор категории                                | Нельзя оставлять пустым, передаётся в URL |
| :attrId      | Идентификатор параметра                                | Нельзя оставлять пустым, передаётся в URL |
| attr_sel     | [only,many]                                            | Нельзя оставлять пустым                |
| attr_vals    | Если это many, необходимо указать опции значений, разделённые запятыми |                                      |

- Ответные данные

{ "data": { "attr_id": 1, "attr_name": "cpu", "cat_id": 22, "attr_sel": "only", "attr_write": "manual", "attr_vals": "ffff" }, "meta": { "msg": "Получено успешно", "status": 200 } }


### 1.7.5. Редактирование и отправка параметра

- Путь запроса: categories/:id/attributes/:attrId
- Метод запроса: put
- Параметры запроса

| Параметр     | Описание               | Примечание                       |
| ------------- | ----------------------- | -------------------------------- |
| :id            |                         |                                  |
Атрибуты запроса оставлены без изменений. | Классификация ID                | Нельзя оставлять пустым, передаётся в URL                                       |
| :attrId   | Атрибут ID                  | Нельзя оставлять пустым, передаётся в URL                                        |
| attr_name | Имя нового атрибута          | Нельзя оставлять пустым, передаётся в теле запроса                             |
| attr_sel  | Тип атрибута [many или only] | Нельзя оставлять пустым, передаётся в теле запроса                             |
| attr_vals | Значения параметров атрибута | Необязательный параметр, передаётся в теле запроса                              |

— Ответные данные:

```json
{
    "data": {
        "attr_id": 9,
        "attr_name": "Тестирование обновления",
        "cat_id": "43",
        "attr_sel": "only",
        "attr_write": "manual",
        "attr_vals": "abc"
    },
    "meta": {
        "msg": "Обновление успешно",
        "status": 200
    }
}

1.8. Управление товарами

1.8.1. Данные списка товаров

— Путь запроса: goods — Метод запроса: get — Параметры запроса:

Параметр Описание Примечание
query Параметр поиска Может быть пустым
pagenum Номер текущей страницы Не может быть пустым
pagesize Количество элементов на странице Не может быть пустым

— Параметры ответа:

Параметр Описание Примечание
total Общее количество товаров
pagenum Текущий номер товара
goods_id Идентификатор товара
goods_name Название товара
goods_price Цена товара
goods_number Количество товара
goods_weight Вес товара Не может быть пустым
goods_state Состояние товара Состояние товара: 0 — не пройдено, 1 — на рассмотрении, 2 — проверено
add_time Время добавления
upd_time Время обновления
hot_mumber Количество популярных товаров
is_promote Является ли товар популярным

— Данные ответа:

{
    "data": {
        "total": 50,
        "pagenum": "1",
        "goods": [
            {
                "goods_id": 144,
                "goods_name": "asfdsd",
                "goods_price": 1,
                "goods_number": 1,
                "goods_weight": 1,
                "goods_state": null,
                "add_time": 1512954923,
                "upd_time": 1512954923,
                "hot_mumber": 0,
                "is_promote": false
            }
        ]
    },
    "meta": {
        "msg": "Получение успешно",
        "status": 200
    }
}

1.8.2. Добавление товара

— Путь запроса: goods — Метод запроса: post — Параметры запроса:

Параметр Описание Примечание
goods_name Название товара Не может быть пустым
goods_cat Список категорий через запятую Не может быть пустым
goods_price Цена товара Не может быть пустым
goods_number Количество товара Не может быть пустым
goods_weight Вес товара Не может быть пустым
goods_introduce Введение Может быть пустым
pics Временный путь к загруженным изображениям (объект) Может быть пустым
attrs Параметры товара (массив), включая динамические параметры и статические атрибуты Может быть пустым

— Запрос данных:

{
  "goods_name":"test_goods_name2",
  "goods_cat": "1,2,3",
  "goods_price":20,
  "goods_number":30,
  "goods_weight":40,
  "goods_introduce":"abc",
  "pics":[
    {"pic":"/tmp_uploads/30f08d52c551ecb447277eae232304b8"}
    ],
  "attrs":[
    {
      "attr_id":15,
      "attr_value":"ddd"
    },
    {
      "attr_id":15,
      "attr_value":"eee"
    }
    ]
}

— Параметры ответа:

Параметр Описание Примечание
total Общее количество товаров
pagenum Текущий номер товара
goods_id Идентификатор товара
goods_cat Список категорий через запятую
goods_name Название товара
... ... ...
------------------ ------------------------------------------------------------
goods_id Идентификатор товара
goods_name Наименование товара
goods_price Цена товара
cat_id Идентификатор категории
goods_number Количество товара
goods_weight Вес товара
goods_introduce Описание товара
goods_big_logo Логотип товара большого размера
goods_small_logo Логотип товара маленького размера
goods_state Статус товара: 0 — не прошёл, 1 — на рассмотрении, 2 — одобрен
add_time Время добавления
upd_time Время обновления
hot_mumber Популярность товара
is_promote Является ли товар популярным
pics Временный путь к загруженным изображениям
attrs Параметры товара
--- --- --------------------------------------------------------------
hot_mumber 热销品数量
is_promote 是否是热销品
pics 上传的图片临时路径(对象) pics_id:图片 ID,goods_id:商品 ID,pics_big:大图,pics_mid:中图,pics_sma:小图
attrs 商品的参数(数组) goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:手动输入,还是单选,

1.8.4. 编辑提交商品

  • 请求路径:goods/:id
  • 请求方法:put
  • 请求参数
参数名 参数说明 备注
id 商品 ID 不能为空携带在url中
goods_name 商品名称 不能为空
goods_price 价格 不能为空
goods_number 数量 不能为空
goods_weight 重量 不能为空
goods_introduce 介绍 可以为空
pics 上传的图片临时路径(对象) 可以为空
attrs 商品的参数(数组) 可以为空
  • 响应数据
{
    "data": {
        "goods_id": 145,
        "goods_name": "test_goods_name2",
        "goods_price": 20,
        "goods_number": 30,
        "goods_weight": 40,
        "goods_introduce": "abc",
        "pics": [
            {
                "pics_id": 397,
                "goods_id": 145,
                "pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8",
                "pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8",
                "pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8"
            }
        ],
        "attrs": [
            {
                "goods_id": 145,
                "attr_id": 15,
                "attr_value": "ddd",
                "add_price": null,
                "attr_name": "fffffff",
                "attr_sel": "many",
                "attr_write": "list",
                "attr_vals": ""
            },
            {
                "goods_id": 145,
                "attr_id": 15,
                "attr_value": "eee",
                "add_price": null,
                "attr_name": "fffffff",
                "attr_sel": "many",
                "attr_write": "list",
                "attr_vals": ""
            }
        ]
    },
    "meta": {
        "msg": "创建商品成功",
        "status": 201
    }
}
``` |                                                              |
| upd_time     | время обновления                   |                                                              |
| hot_mumber   | количество товаров, пользующихся спросом                 |                                                              |
| is_promote   | является ли товаром, пользующимся спросом               |                                                              |
| pics         | временный путь (объект) загруженных изображений | pics_id: идентификатор изображения, goods_id: идентификатор товара, pics_big: большое изображение, pics_mid: среднее изображение, pics_sma: маленькое изображение |
| attrs        | параметры товара (массив)         | goods_id: идентификатор товара, attr_value: текущее значение параметра товара, add_price: плавающая цена, attr_vals: предопределённые значения параметров, attr_sel: ручной ввод или одиночный выбор |

**1.8.5. Удаление товара**

- Запрос: путь — goods/:id, метод — delete.

Запрос содержит параметр:

| Параметр | Описание | Примечание |
| --- | --- | --- |
| id | Идентификатор товара | Не может быть пустым, передаётся в URL |

Ответ:

{ "data": null, "meta": { "msg": "Удаление успешно", "status": 200 } }


### Синхронное обновление изображения товара

- Запрос: путь — goods/:id/pics, метод — put.

Запрос содержит параметры:

| Параметр | Описание     | Примечание                                                     |
| --- | --- | --- |
| id     | Идентификатор товара  | Не может быть пустым, передаётся в URL                           |
| pics   | Коллекция изображений товара | Если есть поле pics_id, то оно сохраняется, если нет поля pics_id и есть поле pic, то генерируются новые данные об изображении |

Запрос данных:

[ { pic: 'tmp_uploads/db28f6316835836e97653b5c75e418be.png' }, { pics_id: 397, goods_id: 145, pics_big: 'uploads/goodspics/big_30f08d52c551ecb447277eae232304b8', pics_mid: 'uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8', pics_sma: 'uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8' } ]


Ответ:

{ "data": { "goods_id": 96, "goods_name": "iphoneXX", "goods_price": 2, "goods_number": 22, "goods_weight": 22, "goods_introduce": null, "goods_big_logo": "./uploads/goods/20171113/483a3b8e99e534ec3e4312dbbaee7c9d.jpg", "goods_small_logo": "./uploads/goods/20171113/small_483a3b8e99e534ec3e4312dbbaee7c9d.jpg", "goods_state": 0, "is_del": "1", "add_time": 1510045904, "upd_time": 1512635159, "delete_time": 1512635159, "hot_mumber": 0, "is_promote": false, "pics": [ { "pics_id": 383, "goods_id": 96, "pics_big": "uploads/goodspics/big_6f5750132abd3f5b2b93dd722fcde653.jpg", "pics_mid": "uploads/goodspics/mid_6f5750132abd3f5b2b93dd722fcde653.jpg", "pics_sma": "uploads/goodspics/sma_6f5750132abd3f5b2b93dd722fcde653.jpg" } ] }, "meta": {} }


Запрос:
- Путь: goods/:id/attributes.
- Метод: put.
- Параметры: 
    * id — идентификатор товара (обязательный параметр, передаётся в URL).

Данные запроса:

[ { attr_id: 15, attr_value: 'ddd' }, { attr_id: 15, attr_value: 'eee' } ]


Ответ:
```json
{
    "data": {
        "goods_id": 96,
        "goods_name": "iphoneXX",
        "goods_price": 2,
        "goods_number": 22,
        "goods_weight": 22,
        "goods_introduce": null,
        "goods_big_logo": "./uploads/goods/20171113/483a3b8e99e534ec3e4312dbbaee7c9d.jpg",
        "goods_small_logo": "./uploads/goods/20171113/small_483a3b8e99e534ec3e4312dbbaee7c9d.jpg",
        "goods_state": 0,
        "is_del": "1",
        "add_time": 1510045904,
        "upd_time": 1512635159,
        "delete_time": 1512635159,
        "hot_mumber": 0,
        "is_promote": false,
        "pics": [
            {
                "pics_id": 383,
                "goods_id": 96,
                "pics_big": "uploads/goodspics/big_6f5750132abd3f5b2b93dd722fcde653.jpg",
                "pics_mid": "uploads/goodspics/mid_6f5750132abd3f5b2b93dd722fcde653.jpg",
                "pics_sma": "uploads/goodspics/sma_6f5750132abd3f5b2b93dd722fcde653.jpg"
            }
        ],
        "attrs": [
            {
                "goods_id": 96,
                "attr_id": 15,
                "attr_value": "eee",
                "add_price": null,
                "attr_name": "fffffff",
                "attr_sel": "many",
                "attr_write": "list",
                "attr_vals": ""
            },
            {
                "goods_id": 96,
                "attr_id": 15,
                "attr_value": "ddd",
                "add_price": null,
                "attr_name": "fffffff",
                "attr_sel": "many",
                "attr_write": "list",
                "attr_vals": ""
            }
        ]
    },
    "meta": {
        "msg": "Обновление успешно",
        "status": 200
    }
}

Обработка изображений с помощью GraphicsMagick

Для установки GraphicsMagick на разных операционных системах необходимо выполнить следующие действия:

  • Linux:
apt-get install GraphicsMagick
  • Mac OS X:
brew install GraphicsMagick
  • Windows: необходимо скачать файл с официального сайта.

Загрузка изображений

Запрос:

  • Путь: upload.
  • Метод: post.
  • Параметр: файл для загрузки.

Ответ:

{
    "data": {
        "tmp_path": "tmp_uploads/ccfc5179a914e94506bcbb7377e8985f.png",
        "url": "http://127.0.0.1:8888tmp_uploads/ccfc5179a914e94506bcbb7377e8985f.png"
    },
    "meta": {
        "msg": "Загрузка успешно",
        "status": 200
    }
}

Управление заказами

Список данных заказов

Запрос:

  • Путь: orders.
  • Метод: get.
  • Параметры:
    • query — параметры поиска (необязательный);
    • pagenum — номер текущей страницы (обязательный);
    • pagesize — количество элементов на странице (обязательный);
    • user_id — ID пользователя (необязательный);
    • pay_status — статус оплаты (необязательный);
    • is_send — статус отправки (необязательный);
    • order_fapiao_title — тип получателя («личное» или «компания») (необязательный);
    • order_fapiao_company — название компании (необязательный);
    • order_fapiao_content — содержание счёта (необязательный);
    • consignee_addr — адрес доставки (необязательный).

Ответ:

{
    "data": {
        "total": 1
    },
    "meta": {
        "msg": "",
        "status": 200
    }
}
``` **1.10.2. Модификация статуса заказа**

* Запрос пути: orders/:id
* Метод запроса: put
* Параметры запроса
| Параметр | Описание | Примечание |
| --- | --- | --- |
| id | Идентификатор заказа | Не может быть пустым, передаётся в URL |
| is_send | Статус отправки заказа | 1  заказ отправлен, 0  не отправлен |
| order_pay | Способ оплаты заказа | 0  оплата не произведена, 1  оплата через Alipay, 2  оплата через WeChat, 3  оплата картой |
| order_price | Цена заказа | |
| order_number | Количество товаров в заказе | |
| pay_status | Статус оплаты | 0  заказ не оплачен, 1  оплачен |

* Описание данных запроса
  * Все данные запроса являются данными для инкрементного обновления. Если параметр не указан, соответствующее поле обновляться не будет.

* Ответные данные
```json
{
    "data": {
        "order_id": 67,
        "user_id": 1,
        "order_number": "itcast-g7kmck71vjaujfgoi",
        "order_price": 20,
        "order_pay": "0",
        "is_send": "нет",
        "trade_no": "",
        "order_fapiao_title": "личное",
        "order_fapiao_company": "",
        "order_fapiao_content": "",
        "consignee_addr": "",
        "pay_status": "0",
        "create_time": 1512533560,
        "update_time": 1512533560,
        "goods": [
            {
                "id": 82,
                "order_id": 67,
                "goods_id": 96,
                "goods_price": 333,
                "goods_number": 2,
                "goods_total_price": 999
            },
            {
                "id": 83,
                "order_id": 67,
                "goods_id": 95,
                "goods_price": 666,
                "goods_number": 5,
                "goods_total_price": 999
            }
        ]
    },
    "meta": {
        "msg": "успешно получено",
        "status": 200
    }
}

1.10.3. Просмотр деталей заказа

  • Путь запроса: orders/:id

  • Метод запроса: get

  • Параметры запроса | Параметр | Описание | Примечание | | --- | --- | --- | | id | Идентификатор заказа | Не может быть пустым, передаётся в URL |

  • Ответные данные

{
    "data": {
        "order_id": 67,
        "user_id": 1,
        "order_number": "itcast-g7kmck71vjaujfgoi",
        "order_price": 20,
        "order_pay": "0",
        "is_send": "нет",
        "trade_no": "",
        "order_fapiao_title": "личное",
        "order_fapiao_company": "",
        "order_fapiao_content": "",
        "consignee_addr": "",
        "pay_status": "0",
        "create_time": 1512533560,
        "update_time": 1512533560,
        "goods": [
            {
                "id": 82,
                "order_id": 67,
                "goods_id": 96,
                "goods_price": 333,
                "goods_number": 2,
                "goods_total_price": 999
            },
            {
                "id": 83,
                "order_id": 67,
                "goods_id": 95,
                "goods_price": 666,
                "goods_number": 5,
                "goods_total_price": 999
            }
        ]
    },
    "meta": {
        "msg": "получено успешно",
        "status": 200
    }
}

1.10.4. Изменение адреса

Не удалось определить язык программирования или разметки, на котором написан текст.

1.10.5. Просмотр информации о логистике

  • Путь запроса: /kuaidi/:id

  • Метод запроса: get

  • Тестовый номер отслеживания: 1106975712662

  • Ответные данные:

{
    "data": [
      {
        "time": "2018-05-10 09:39:00",
        "ftime":
``` Текст запроса представляет собой данные, связанные с логистикой и доставкой товаров. Перевод технической части текста не требуется, так как в запросе нет кода или специализированных терминов.

В запросе содержится информация о доставке товара от момента оформления заказа до получения его покупателем. В ответе также сообщается об успешном получении информации о логистике.

**Ответ:**

[ { "time": "2018-05-10 09:39:00", "context": "已签收,感谢使用顺丰,期待再次为您服务", "location": "" }, { "time": "2018-05-10 08:23:00", "ftime": "2018-05-10 08:23:00", "context": "[北京市]北京海淀育新小区营业点派件员 顺丰速运 95338正在为您派件", "location": "" }, { "time": "2018-05-10 07:32:00", "ftime": "2018-05-10 07:32:00", "context": "快件到达 [北京海淀育新小区营业点]", "location": "" }, { "time": "2018-05-10 02:03:00", "ftime": "2018-05-10 02:03:00", "context": "快件在[北京顺义集散中心]已装车,准备发往 [北京海淀育新小区营业点]", "location": "" }, { "time": "2018-05-09 23:05:00", "ftime": "2018-05-09 23:05:00", "context": "快件到达 [北京顺义集散中心]", "location": "" }, { "time": "2018-05-09 21:21:00", "ftime": "2018-05-09 21:21:00", "context": "快件在[北京宝胜营业点]已装车,准备发往 [北京顺义集散中心]", "location": "" }, { "time": "2018-05-09 13:07:00", "ftime": "2018-05-09 13:07:00", "context": "顺丰速运 已收取快件", "location": "" }, { "time": "2018-05-09 12:25:03", "ftime": "2018-05-09 12:25:03", "context": "卖家发货", "location": "" }, { "time": "2018-05-09 12:22:24", "ftime": "2018-05-09 12:22:24", "context": "您的订单将由HLA(北京海淀区清河中街店)门店安排发货。", "location": "" }, { "time": "2018-05-08 21:36:04", "ftime": "2018-05-08 21:36:04", "context": "商品已经下单", "location": "" } ], "meta": { "status": 200, "message": "获取物流信息成功!" }


Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wBekvam-vue-shop-admin.git
git@api.gitlife.ru:oschina-mirror/wBekvam-vue-shop-admin.git
oschina-mirror
wBekvam-vue-shop-admin
wBekvam-vue-shop-admin
master