Я создаю простой CRUD RESTful API с пружинной загрузкой для управления 4-значными PIN-кодами .У меня проблемы с тем, какие HTTP-глаголы использовать.
Вот мои предположения:
- Для создания наиболее подходящими глаголами должны быть
POST
или PUT
.Я использую PUT
, потому что он идемпотентен (это повлияет на ресурс только один раз, независимо от того, сколько запросов отправлено) - для частичных обновлений Я использую
PATCH
- дляполные обновления я использую
PUT
Дело в том, что я обеспокоен проблемами безопасности.Эта служба будет работать внутри контейнера в частном облаке AWS и доступна другим службам в том же облаке.
В этом информационном ответе говорится, что для обновлений POST
более корректно (чем PUT
), но с точки зрения безопасности это не имеет значения, потому что вызов будет вызываться в https.
С другой стороны, эта страница говорит, что POST
должноиспользоваться для того, чтобы «скрыть» PIN-код от запроса.
Итак, мой вопрос: какой HTTP-глагол s следует использовать?Ответы от экспертов по разработке API приветствуются.
ОБНОВЛЕНИЕ:
Это микросервис с пружинной загрузкой (MS) в ECS.Будет потребляться от других внутренних MS.Цель состоит в том, чтобы управлять и проверять PIN-коды пользователя.
Модель:
- Это пин-код пользователя, к которому относится свойствоX.Свойство находится в перечислении.
- userId - это идентификатор из другой таблицы, используемой в нескольких Mss / DB, и не имеет ограничений (без FK и т. Д.).
- DB: Aurora только с одной таблицей: id (автоинкремент), userId, pin (код), propertyX
Желаемые конечные точки / операции:
- создать объект PIN.(вход: userId, pinCode, свойство)
- проверять pinCode.(вход: userId + pin)
- обновить просто pinCode.(вход: userId, newPinCode)
- удалить объект PIN.(вход: userId)
- get propertyX.(вход: userId)
- обновить только свойствоX.(вход: userId newPropertyX)