Ответ Ajax - есть ли соглашение о структуре?

Скажем, я делаю запрос ajax на сервер со страницы, что-то вроде «показать больше статей». Существует ли общее соглашение относительно формата или, скорее, структуры , в которой должен быть возвращен результат?

Что-то вроде этого:

{articles: [{id: ..., title: ..., created_by: ...}, {id: ..., title: ..., created_by: ...}, {id: ..., title: ..., created_by: ...}]

или

{result: "ok", data: [{id: ..., title: ..., created_by: ...}, {id: ..., title: ..., created_by: ...}, {id: ..., title: ..., created_by: ...}]

Или:

[{id: ..., title: ..., created_by: ...}, {id: ..., title: ..., created_by: ...}, {id: ..., title: ..., created_by: ...}]

Обратите внимание: я говорю о запросах /ответах ajax, а не REST API.

А также, что, если произошла ошибка? Какова структура ответа ajax, содержащего информацию об ошибке?

3 голоса | спросил Koodi 24 +03002017-10-24T07:30:36+03:00312017bEurope/MoscowTue, 24 Oct 2017 07:30:36 +0300 2017, 07:30:36

2 ответа


2

Насколько я знаю: нет. Нет общего подхода или стандарта.

Лично я всегда должен возвращать объект, ни одно значение или массив.

Это обеспечивает совместимость. Например, если я добавлю новое поле, существующий код не сломается и просто проигнорирует его.

Что касается обработки ошибок, я проверяю, существует ли свойство объекта error. Если это не определено, все в порядке. Если это строка, что-то пошло не так.

ответил Mario 24 +03002017-10-24T08:27:40+03:00312017bEurope/MoscowTue, 24 Oct 2017 08:27:40 +0300 2017, 08:27:40
1

Гораздо важнее, чтобы ваши ответы имели согласованную структуру между собой в вашем проекте, чем то, что они соответствуют любому другому проекту. Это означает, что вы можете использовать общий код для связи, обработки ошибок, форматирования данных, возможно сортировки и фильтрации, и т. Д.

Если бы существовал стандарт де-факто для внутреннего макияжа ответов Ajax, было бы целесообразно следовать ему, чтобы сделать ваш проект более понятным для любых других людей, которые могут иметь дело с ним. Но так как этого не происходит, вы должны сами создавать свои собственные, и для этого нужно подумать.

ответил Kilian Foth 24 +03002017-10-24T09:19:00+03:00312017bEurope/MoscowTue, 24 Oct 2017 09:19:00 +0300 2017, 09:19:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132