У меня возник вопрос о том, как создать ресурс URI с составными ключами.
У меня есть ресурс, называемый фрахтом, который имеет 4 ключа/идентификаторы: идентификатор партнера, начальный индекс, окончательный индекс и вес.
На самом деле мой ресурс был спроектирован так, чтобы иметь инкрементный идентификатор, созданный базой данных, но этот подход не так хорош для пользователей API, например, если потребителю/партнеру необходимо обновить информацию о фрахте, которую они должны делать:
GET фрахт? initialZipcode = {VALUE} & finalZipcode = {VALUE} & weight = {VALUE}
Ответ вышеописанной операции будет идентификатором фрахта, поэтому, наконец, они могут обновить информацию:
PUT фрахт /{ID}
Идентификатор партнера подразумевается механизмом аутентификации.
Мне кажется странным заставить партнеров получить идентификатор фрахта перед обновлением информации.
Итак, мой вопрос: как я могу создать этот URI?
PUT cargo/initialZipcode/{VALUE}/finalZipCode/{VALUE}/weight/{VALUE}
Я должен рассмотреть дизайн выше?
Другой вопрос: является ли хорошей практикой внедрить партнер в механизм аутентификации? Я знаю плюсы (простые для потребителей) и минусы (кеш, невозможность обмена URI и т.д.), Но я не знаю, является ли вообще хорошей или плохой практикой.
Спасибо!