Каков лучший дизайн API отдыха, когда у вас есть условие вызова? - PullRequest
0 голосов
/ 04 мая 2020

У меня есть условие вызова. Для проверки состояния необходимо позвонить другому эндопинту. Какой дизайн API лучше?

например

if(fetch('api/is-data-valid')){
 const data = fetch('api/get-profile-data');
 // do something with data
}

или

const data = fetch('api/get-profile-if-data-valid');
if(data.isDataValid) {
 // do something with data
}

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Если клиент не может определить, действительны ли данные, API должен ответить соответствующим образом, без дополнительного шага.

Вместо проверки api/is-data-valid для получения api/get-profile-data, сделайте это за один раз запрос, который скрывает реализацию, предложенную api/get-profile-if-data-valid

. Вы можете получить profile-data, только если данные действительны, поэтому позвольте API обработать их.

fetch('api/get-profile-data'); // returns profile data or 404

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

0 голосов
/ 04 мая 2020

Ответ зависит от нескольких вещей. В общем, лучше всего сводить количество вызовов API к минимуму, поэтому предпочтительнее делать один вызов вместо двух. Однако, если есть случаи, когда кто-то захочет проверить достоверность данных без получения профиля, важно иметь is-data-valid API.

Мой совет - иметь оба API, но разрешить кому-либо звонить get-profile-data когда он недействителен и обрабатывает этот случай четко определенным образом. Это позволило бы выполнить работу одним вызовом, но все же позволило бы использовать другие случаи использования, когда проверка достоверности данных полезна сама по себе.

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