У нас есть API регистрации клиентов, который принимает имя, адрес электронной почты и мобильный телефон и генерирует идентификатор клиента, т.е.:
{
"name": "john",
"email": "[email protected]",
"mobile": "+134325325"
}
Мы создаем запись клиента для этого обращения к API. Клиент может быть создан из нескольких клиентов и форм. У нас есть новое требование: если мы получим эту запись о «создании клиента» из определенной формы, нам также необходимо отправить эту информацию (имя, адрес электронной почты, мобильный телефон) + (идентификатор клиента) в какой-либо сторонний API.
Я считаю, что согласно resful pratise, этот API должен создавать только «клиента» и не делать таких дополнительных вещей, которые будут действительны только для определенных клиентов/форм.
Что является лучшей альтернативой в этом случае:
- Создайте новый API для этого нового требования: этот новый API сначала создаст клиента, а затем отправит его стороннему API. Это соответствует нашему требованию, но логика создания клиентов теперь находится в двух API.
- Используйте существующий «API регистрации клиентов», добавив новый флаг: мы бы установили этот флаг из этих форм, где у нас есть это новое требование по отправке данных третьей стороне. Сначала мы создадим клиента, и если флаг установлен, мы также отправим эти данные сторонним API. Но является ли этот подход RESTful?
- Из этих форм, где нам нужно отправить данные в сторонний API, сначала отправьте запрос в «API регистрации клиентов» и получите идентификатор клиента, а затем отправьте эти данные в сторонний API: это будет медленным, поскольку нам придется ждать идентификатор клиента на клиентская сторона.