Вопросы с тегом «api-design»

Разработка интерфейса прикладного программирования (API) обсуждает лучшие практики для создания библиотек, предназначенных для общего или общественного использования.

14
Стоит ли писать свой бэкэнд как API?
Сегодня у меня была горячая дискуссия о нашем приложении MVC. У нас есть веб-сайт, написанный на MVC ( ASP.NET ), и он обычно следует шаблону «сделать что-то» в представлении -> нажать на контроллер -> контроллер строит модель (вызывает менеджера, который получает данные, строит модель в Сам метод контроллера) -> модель …

4
Что такое антикоррупционный слой и как он используется?
Я пытаюсь понять, что на самом деле означает антикоррупционный слой. Я знаю, что это способ перехода / работы с устаревшим кодом или плохими API. Я не понимаю, как это работает и что делает его чистым отделением от нежелательного слоя. Я провел некоторый поиск, но не могу найти простых примеров или …

7
Как поиск вписывается в интерфейс RESTful?
При разработке интерфейса RESTful семантика типов запросов считается жизненно важной для проекта. GET - список коллекции или получить элемент PUT - заменить коллекцию или элемент POST - Создать коллекцию или элемент УДАЛИТЬ - Ну, ну, удалить коллекцию или элемент Тем не менее, это не похоже на понятие «поиск». Например, при …

14
Должно ли решение быть настолько общим, насколько это возможно, или настолько конкретным, насколько это возможно?
Скажем, у меня есть объект с атрибутом «тип». Там может быть более 20 возможных типов. Теперь меня попросили реализовать что-то, что позволило бы изменить тип с A-> B, что является единственным вариантом использования. Так я должен реализовать что-то, что позволяет произвольные изменения типа, если они являются допустимыми типами? Или я …

5
Должен ли я возвращать статус HTTP 400 (неверный запрос), если параметр синтаксически правильный, но нарушает бизнес-правило?
Скажем, у меня есть конечная точка REST, которая принимает целое число в качестве параметра: /makeWaffles?numberOfWaffles=3 В этом случае я хочу, чтобы число было положительным, потому что я не могу сделать отрицательное число вафель (а запрос 0 вафель - пустая трата времени). Поэтому я хочу отклонить любой запрос, который не содержит …
56 api-design  http 

9
Стоит ли защищаться от неожиданных значений внешних API?
Допустим, вы кодируете функцию, которая получает данные от внешнего API MyAPI. Этот внешний API MyAPIимеет контракт, в котором говорится, что он возвратит a stringили a number. Является ли он рекомендовал , чтобы защититься от таких вещей , как null, undefined, booleanи т.д. , даже если это не часть API из …

10
Каким должен быть код состояния http для ошибки «Служба недоступна в вашем регионе»?
Наш сервис сейчас в 5 городах. Если кто-то пытается вызвать наш сервис API из любого другого города, мы хотим выбросить эту ошибку Service not available in your area. Вопрос в том, какой код http будет подходящим для этой ошибки? сервис 503 недоступен 403: запрещено или что-то другое?
51 api  api-design  http 

14
RESTful API дизайн. Что я должен вернуть, если нет строк?
В настоящее время я пишу API для социальной сети с Slim Framework. Мой вопрос: каковы лучшие практики, когда в структуре json нет строк для возврата? Допустим, этот вызов / v1 / get / movies возвращает 2 строки из таблицы названий фильмов: [ {"name": "Ghostbusters"}, {"name": "Indiana Jones"} ] Но затем …

6
Много маленьких запросов против нескольких больших запросов (API Design)
В настоящее время я работаю над проектом с организацией следующим образом: Клиент - получает данные с главного сервера через REST API. Сервер - запрашивает данные с других серверов через сторонние API Сторонние API - не зависящие от меня сервисы, предоставляющие данные на сервер (Reddit, Hackernews, Quora и т. Д.) В …

3
Почему метод PATCH не идемпотентен?
Мне было интересно об этом. Предположим , у меня есть userресурс с idи nameполей. Если я хочу обновить поле, я мог бы просто сделать запрос PATCH к ресурсу, как это PATCH /users/42 {"name": "john doe"} И тогда приложение обновит имя пользователя 42. Но почему, если я повторю этот запрос, результат …

6
Насколько необходимо следовать методам защитного программирования для кода, который никогда не станет общедоступным?
Я пишу Java-реализацию карточной игры, поэтому я создал специальный тип Collection, который я называю Zone. Все методы модификации Java Collection не поддерживаются, но в Zone API есть метод move(Zone, Card), который перемещает карту из заданной зоны в себя (выполняется с помощью методов, закрытых для пакетов). Таким образом, я могу гарантировать, …

3
Что такого плохого в DOM?
Я продолжаю слышать, как люди (в частности, Крокфорд) говорят, что DOM - ужасный API, но на самом деле не оправдывают это утверждение. Помимо кросс-браузерных несоответствий, по каким причинам DOM считается настолько плохим?

8
Почему java.util.ArrayList позволяет добавлять нуль?
Интересно, почему java.util.ArrayListпозволяет добавить null. Есть ли какой-либо случай, когда я хотел бы добавить nullк ArrayList? Я задаю этот вопрос , потому что в проекте мы имели ошибку , когда некоторый код добавлял nullк , ArrayListи это было трудно определить , где ошибка была. Очевидно, что NullPointerExceptionбыл брошен, но только …

1
ноль против отсутствующего ключа в ответе REST API [закрыто]
Скажем, в моем приложении некоторые пользователи дают нам свою фамилию, а другие нет. В ответе REST API, какое тело является предпочтительным: С нулевым значением: {"firstName": "Bob", "lastName": null} Или просто отсутствующий ключ: {"firstName": "Bob"}
41 rest  api-design  json 

11
Должен ли REST API возвращать 500 Internal Server Error, чтобы указать, что запрос ссылается на несуществующий объект?
Я работаю с REST API, который находится на сервере, который обрабатывает данные для множества устройств IoT. Моя задача - выполнить запрос к серверу с помощью API для сбора конкретной информации о производительности указанных устройств. В одном случае я получаю список доступных устройств и их соответствующие идентификаторы, а затем опрашиваю сервер …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.