Я создаю простой RESTful API CRUD с весенней загрузкой для управления 4-значным PIN-коды. У меня проблемы с тем, какие глаголы HTTP использовать.
Вот мои предположения:
POST или PUT. Я использую PUT, потому что он идемпотент (он повлияет на ресурс только один раз, независимо от того, сколько запросов отправлено)PATCHPUTДело в том, что меня беспокоят вопросы безопасности. Этот сервис будет работать внутри контейнера в частном облаке AWS, и к нему будут обращаться другие сервисы в том же облаке.
Этот информационный ответ говорит, что для обновлений POST правильнее (чем PUT), но с точки зрения безопасности это не имеет значения, так как вызов будет осуществляться в https.
С другой стороны, эта страница говорит, что POST следует использовать, чтобы «скрыть» PIN-код от запроса запроса.
Итак, мой вопрос: какой HTTP-глагол ссtrong> мне следует использовать? Ответы экспертов по дизайну API приветствуются.
Обновлено:
Это микросервис с пружинной загрузкой (MS) в ECS. Будет потребляться от других внутренних MS. Цель состоит в том, чтобы управлять и проверять PIN-коды пользователей.
Модель:
Желаемые конечные точки/операции:
вопрос @bwest обновлен
Если вы заботитесь о безопасности, вам следует вместо этого отправить закодированный PIN-код в API. Я не думаю, что POST/PUT здесь имеет значение.
@LunaticJape, можете ли вы объяснить, как это возможно? Как закодировать PIN-код перед передачей его в запросе, поскольку HTTP-метод является первой точкой контакта с API?





Если вам нужны рекомендации по архитектуре, вам нужно будет предоставить дополнительную информацию о том, как выглядит ваш API, например, какой ресурс вы создаете с помощью POST или PUT, схему URL, PIN-код, подресурс для пользователя и т. д. ? Более прямым вопросом может быть вопрос о различиях в безопасности между PUT и POST. Вопрос сейчас немного широк.