Как вообще веб-фреймворк может поддерживать стиль REST? - PullRequest
4 голосов
/ 19 мая 2010

Я хотел бы знать, как веб-фреймворк может быть подходящим для разработки приложения RESTful, в целом.

Одной из целей является, например, обеспечение маршрутизации HTTP-запросов, чтобы они автоматически отправлялись на соответствующие контроллеры. С архитектурной точки зрения веб-фреймворк на основе шаблона MVC больше подходит для REST.

Какие другие возможности веб-фреймворков полезны при создании приложений, удовлетворяющих ограничениям REST?

Есть ли причина, по которой вы считаете некоторые языки (python / java) или веб-фреймворки (django / turbogears / jersey / restlets / ...) наиболее подходящими?

Ответы [ 5 ]

1 голос
/ 19 мая 2010

а) Вам нужна очень гибкая маршрутизация.
б) Вы должны иметь возможность легко создавать ссылки, которые соотносятся с контроллерами ресурсов, используя шаблоны и параметры.
c) Сервер должен помочь вам разобрать все заголовки http. например Заголовки авторизации, заголовки Accept, языковые заголовки, файлы cookie, etags.
d) Он должен поддерживать сериализацию и десериализацию всех часто используемых типов пантомимы.
e) Это должно помочь при разборе параметров из входящих URL
f) Это должно помочь разрешить относительные URL-адреса на основе URL-адреса запроса и любого доступного BaseURL.

1 голос
/ 19 мая 2010

Я думаю, что лучший способ для веб-фреймворка поддерживать стиль RESTful - это автоматически сопоставлять различные HTTP-глаголы (GET, POST, PUT, DELETE и т. Д.) С соответствующими методами на его контроллеры / обработчики запросов. Большинство современных веб-фреймворков Python делают это из коробки, за исключением заметного Django (если я не пропустил существенное изменение).

0 голосов
/ 19 мая 2010

Что касается «рекомендаций по конкретному программному обеспечению», у меня есть люди, которые рекомендуют Apache CXF в качестве основы для создания служб RESTful с Java. Кажется, что он даже способен одновременно поддерживать SOAP (что очень полезно для того, чтобы помочь некоторым нашим клиентам принять программное обеспечение). Я все еще на экспериментальной стадии, так что вы можете добиться большего успеха.

0 голосов
/ 19 мая 2010

Я бы подчеркнул способность напрямую поддерживать определение ресурсов. В Ruby on RAils вы можете определить ресурс с помощью скаффолдинга, и вы получите модель с контроллером с реализованными глаголами отдыха, также с представлениями и поддержкой различных форматов и легко доступными представлениями и маршрутизацией с идентификаторами.

Кроме того, вам нужен доступ к HTTP и поддерживающие принципы HTTP.

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

0 голосов
/ 19 мая 2010

Есть несколько способов, которыми веб-фреймворк НЕ может поддерживать REST. Он в основном написан с учетом модели HTTP; так что практически любой веб-фреймворк работает. Упомянутая вами автоматическая маршрутизация является обычным ожиданием, но она не обязательна для REST.

...