При написании API RESTful, который должен иметь доступ к различным средам, таким как лабораторная/тестовая база данных и производственная база данных, каковы наилучшие методы создания API?Рекомендации по использованию REST API, которые обращаются к нескольким средам
Должен ли быть @PathParam
:
/employee/{emp_id}/{environment}
/{environment}/employee/{emp_id}/
Должен ли быть @QueryParam
:
/employee/{emp_id}/?environment="test"
/employee/{emp_id}/?environment="prod"
Должен ли быть поле в полезной нагрузке ?:
{"emp_id":"123","environment":"test"}
{"emp_id":"123","environment":"production"}
Я собирался написать что-то подобное, но @thierry опередил меня, так что я буду upvote Тьерри. Однако я бы не пошел по пути. Пути маршрутов могут иметь смысл при работе с версиями (хотя есть много дискуссий, если они должны быть частью пути или заголовка), поскольку он идентифицирует ресурс в контексте. Но при работе с конкретными средами я бы предложил использовать заголовок. Идеально, на самом деле должен иметь отдельный URL-адрес хоста полностью, поэтому вы никогда не рискуете испортить его, но если вы застряли, перейдите к заголовку. – deitch
Большое спасибо, Avi! Я окончательно соглашаюсь с вами ;-) Мы должны быть очень осторожны, чтобы разделить такие среды.Различные URL-адреса хоста были бы даже лучше, чем заголовок ;-) –
Я провел целую кучу лет, занимаясь ИТ-услугами в финансовых услугах. Админы и разработчики прикручиваются и либо вводят неправильное окно, либо отправляют неверный параметр и, таким образом, случайно удаляют производственный идентификатор или выполняют торговлю или проводят анализ на prod вместо dev, слишком сбиты с толку и болезненны. Все, что отделяет больше, хорошо в моей книге! :-) – deitch