Ответ с помощью объекта JSON объектов на конечную точку API - PullRequest
0 голосов
/ 05 ноября 2018

Ну, это мое первое приложение для nodeJS. Я изучал лучшие методики RESTful API, но ни один из них, похоже, не решает мои проблемы напрямую.

Вот формат, в котором мои данные сохраняются в базе данных:

'1212': {
    name: 'Plasma Blaster',
    id: 1212,
    price: 7000,
    quantity: 10,
    minimum: false,
    date: new Date().toISOString().replace('T', ' ').substr(0, 19),
    image: 'http://www.img.com/image.jpeg',
},

Каждый элемент сохраняется со строкой его уникального идентификатора в качестве ключа. Кстати, я использую простые структуры данных как db.

Запрос на получение к конечной точке / api / v1 / store / products возвращает результат:

{
"completed": true,
"message": "get products sucessful",
"products": {
    "1370": {
        "name": "DH-17 blaster pistol",
        "id": 1370,
        "price": 600,
        "quantity": 10,
        "minimum": "false",
        "date": "2018-11-05 13:29",
        "image": "http://www.img.com/image.jpeg"
    },
    "1473": {
        "name": "C-22 fragmentation grenade",
        "id": 1473,
        "price": 200,
        "quantity": 16,
        "minimum": "false",
        "date": "2018-11-05 13:32",
        "image": "http://www.img.com/image.jpeg"
    },
    "8385": {
        "name": "Neon-Blue Crystal Lightsaber",
        "id": 8385,
        "price": 200,
        "quantity": 1,
        "minimum": "true",
        "date": "2018-11-05 13:35",
        "image": "http://www.img.com/image.jpeg"
    },
    "0836": {
        "name": "Treppus-2 vibroblade",
        "id": 836,
        "price": 2000,
        "quantity": 1,
        "minimum": "true",
        "date": "2018-11-05 13:36",
        "image": "http://www.img.com/image.jpeg"
    }
}

}

Мне нужно знать, является ли это принятой структурой. Структуры ответов API, с которыми я работал ранее, это Массив объектов. Я также буду признателен за помощь в форматировании.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Принятая структура зависит от того, что требует клиент (ы), использующий ваш API, некоторые люди называют это «контрактом». И если вам нужно определить его с помощью инструмента, я бы порекомендовал swagger .

В том, что вы упомянули, в частности, о вашем json, массив объектов действительно имеет больше смысла для ключа products вашего json, но это только потому, что массив является самой простой структурой. Если то, что вы разрабатываете, требует структуры данных, для которой вам нужно быстро получить продукт по его идентификатору, ваша структура лучше.

0 голосов
/ 05 ноября 2018

Существует не так много рекомендаций по "принятой структуре" для ресурсов JSON, большинству людей важно только, чтобы вы были последовательны.

Тем не менее, я думаю, что ваши ключи "complete" и "message" не добавляют много, поскольку они должны быть очевидны на основе кода ответа HTTP (например, 200 Success). Клиентам может показаться, что работать с массивом и объектом немного проще, но это не так важно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...