LINUX.ORG.RU

Как именовать методы api web-сервисов.

 


0

1

Добрый день, подскажите, есть какие-нибудь стандарты по именованию api методов на сервере. Допустим пишу я прототип на php и какое-нибудь api имеет вид https://example.ru/api/hi.php, но тут я решил переписать все на python и соответственно url будет как-то дезорганизовывать пользователя. Раньше помню писали например cgi расширение, не знаю как сейчас это актуально вообще или возможно вообще не писать никакого расширения?


Поменяй теги, CGI здесь вообще не при чем. Даже я — любитель сишечки — уже давно перестал в новых поделках использовать CGI, теперь у меня непосредственно сетевые демоны, которые либо напрямую обрабатывают POST/GET запросы на определенный непривилегированный порт, либо работают через вебсокеты. Еще можно проксировать запросы nginx'ом (т.н. fastcgi), но это вообще не CGI как таковые.

Что до стандартов, сильно сомневаюсь, что они есть. Каждый лепит как ему нравится.

Eddy_Em ☆☆☆☆☆
()

На расширение всем наплевать. Можете сделать хоть /cgi-bin/query.exe, если того ожидают уже существующие клиенты. Если требований обратной совместимости нет, а возможности того позволяют, делайте вовсе без расширения.

anonymous
()

Зачем вообще расширение? Делай просто /api/hi.

theNamelessOne ★★★★★
()
Ответ на: комментарий от anonymous

Хм, я думал, ТС имеет в виду именно «расширение», а не суффикс пути запроса.

Ну и писал бы «суффикс»!..

Eddy_Em ☆☆☆☆☆
()

Если речь не о CRUD, то в общем случае у меня будет так: /api/<версия>/<категория>/<метод>

Например: /api/0.1/employees/promote

Если на кой-то чёрт (очень хочется сделать крайне всратые балансировку и кеширование, допустим) стараться делать поближе к REST, то прямо в урле ещё будет идентификатор ресурса: /api/0.1/employees/1033/promote

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)

Когда-то давно, когда я был молод и глуп, и не видал больших... проектов, то я примерно так же искал гайды по организации тэгов у информации. А гайд очень простой: собираешь информацию, и далее пост фактум организовываешь ее. Хуже отсутствия организации может быть только неправильная организация.

byko3y ★★★★
()

Вообще, правилом хорошего тона является либо не использовать расширения вообще (/api/blahblah), либо использовать соответствующие твоему формату данных (/api/blahblah.json, /api/blahblah.xml, или что там у тебя).

С другой стороны, если у тебя уже есть апи, которым кто-то пользуется – сделай пользователю хорошо, ничего в нем не меняй.

anonymous
()
Ответ на: комментарий от anonymous

У меня как раз сейчас выбор есть сделать «как правильно»

da17
() автор топика

но тут я решил переписать все на python и соответственно url будет как-то дезорганизовывать пользователя

Пользователю веб-сервиса нет дела до деталей его реализации. Но суффикс лучше вообще убрать. Суффиксы .json/.xml я бы тоже не стал использовать, такие вещи лучше через параметры делать. В пути метода (до параметров) вообще лучше никогда ничего не менять, кроме версии API, которую тебе стоило бы добавить. Её всегда стоит добавлять, даже если кажется, что версий не будет.

anonymous
()
Ответ на: комментарий от anonymous

Ок. Это учту. Есть литература с пруфами, уже пару раз встречал такой подход. Откуда пошло?

da17
() автор топика
Ответ на: комментарий от da17

Не знаю, просто делюсь опытом. Имею дело с некоторым количеством разнообразных сервисов, также разрабатывал свои. Мне кажется, это просто здравый смысл.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.