Конечная точка REST, которая генерирует уникальный идентификатор, если она выполняется POST или GET - PullRequest
0 голосов
/ 06 августа 2020

Создание системы, которая позволит клиентам загружать свои квитанции. Мне нужно создать URL-адрес, который клиент будет вызывать для создания уникального идентификатора, например /system/generate_id. Вопрос в том, должен ли этот URL быть GET или POST.

Немного в этой системе. Сгенерированный URL-адрес будет действителен в течение нескольких часов, а затем истечет. Сгенерированный идентификатор не будет использоваться для однозначной идентификации чеков. Квитанции будут прочитаны другой системой для выполнения некоторой обработки OCR и будут сохранены в каком-то новом месте (где они будут сопоставлены с идентификатором пользователя). Сгенерированный URL-адрес не может использоваться для доступа к загруженной квитанции, т. Е. system/<generated_id> не существует. Фактически, рассматриваемая система будет лямбда-выражением, единственной целью которой является создание идентификатора, и этот сгенерированный идентификатор не зависит от пользователя, он просто уникален.

Я знаю, что запрос POST является что-то, что в конечном итоге создает Child по заданному URL-адресу, а GET - это то, что просто возвращает информацию. Итак, в этом случае, каким должен быть тип URL. Должно быть GET или POST

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Конечная точка REST, которая генерирует уникальный идентификатор, если она POST или GET

https://www.uuidgenerator.net/ - это пример конечной точки REST, которая генерирует уникальный идентификатор (в частности, UUID версии 4). Его вызов работает именно так, как и следовало ожидать: ваш браузер отправляет запрос GET, и вы получаете обратно документ HTML с уникальным идентификатором, встроенным в его середину.

Важный элемент здесь заключается в том, что семантика запроса безопасна . Тот факт, что реализация требует использования некоторых случайных чисел на сервере, является лишь деталью реализации, а не частью семантики запроса.

0 голосов
/ 06 августа 2020

Обычно в хорошем дизайне GET - это операция только для чтения, запрос GET не должен изменять состояние системы. С другой стороны, POST предназначен для изменения состояния системы. Если во время генерации идентификатора код записывает некоторые данные в базу данных или где-то, я предлагаю использовать POST, если это просто только для чтения, тогда GET.

ps. Если вы забыли все эти правила, то GET выглядит очень логичным, как 'ПОЛУЧИТЕ мне новый уникальный идентификатор'

...