Я знаю, что этот вопрос слишком широк, чтобы получить ответ с помощью простого «использования этой структуры», но я был бы очень признателен за ваш совет по этому вопросу.Как выбрать идеальный RESTful framework?
Я ищу, чтобы сделать (довольно сложный) проект, чем работать над API. Я открыт для любого языка программирования (PHP, Python, Java в основном) и нашел много фреймворков, которые больше ориентированы на создание веб-сервера RESTful.
Единственное серьезное ограничение, которое у меня есть, это то, что у меня будет многоразовый, простой и не-кодовый спагетти-независимый пакет, чтобы впоследствии улучшить мой API или даже переключиться на другую инфраструктуру без боли.
Для Python & Java, я думал о создании специального пакета. Каждое действие вызовет выделенный пакет в пакете, пакет вернет объект/dict, и действие преобразует его в соответствующий формат.
После многих исследований я мечусь между двумя рамками, которые могли бы быть хорошо для моей работы, но мне нужен ваш совет, потому что я не сделал ни одной ошибки здесь.
- Play! Framework (Java)
- Pros:
- Router являются RESTful ориентированные (вы определяете метод (GET, POST, и т.д.), запрос и class.method использовать)
- Вы не должны сделать один класс в действии
- Против:
- Модель уже включена. Если я позже изменю структуру, возможно, я застрял с ней (но, видимо, нет, поскольку Play! Кажется, использует JPA)
- Возможно, факт, что если я хочу отправить параметры в действие, которое будет определено в сигнатуре метода , я должен принять ClassName.properties вместо JSON как {ClassName: {свойства: 'значение'}}
- Pros:
- Tornado Web (Python)
- Профессионалы:
- Кажется, это очень мощный: используется FriendFeed (как минимум)!
- Auth через главную OpenId, OAuth и Facebook уже реализованы
- Очень легкий (может быть проблемой)
- Против:
- Не так популярны: вы лучше понять работу, перейдя в код, чем doc
- Urls, кажется, очень основаны (насколько я видел это, вы должны определить все URL-адреса в одном файле со всеми включенными классами)
- Один класса за действия (которые могут быть тяжелыми)
- Декораторов для основной (тестировании, если пользователь аутентификация, и т.д.) должен быть сделан
- Профессионалы:
Для использования их в производстве, это было бы легко с помощью apache & mod_proxy или nginx.
Итак, мои вопросы довольно просты: что бы вы выбрали (между этими двумя или другими, я не закрыт для предложений) и почему?
Спасибо вам большое за ваш совет!
Whoa! Это очень полный ответ! Я очень ценю время, которое ты взял, чтобы ответить мне! Я посмотрю на Restlet :) Большое спасибо! – 2010-12-08 20:34:08