Я знаю, что этот вопрос слишком широкий, чтобы на него можно было ответить простым "использовать эту структуру", но я был бы очень признателен за ваш совет по этому вопросу.
Я хочу сделать (довольно сложный) проект, который будет работать через API. Я открыт для любого языка программирования (в основном PHP, Python, Java) и обнаружил множество фреймворков, более ориентированных на создание веб-сервера RESTful.
Единственное серьезное ограничение, которое у меня есть, это то, что у меня будет многократно используемый, простой и независимый от кода спагетти пакет, чтобы впоследствии можно было легко улучшить мой API или даже безболезненно перейти на другую среду.
Для Python и Java я думал о создании выделенного пакета. Каждое действие будет вызывать выделенный метод в пакете, пакет будет возвращать объект / dict, и действие преобразует его в соответствующий формат.
После многих исследований, я колеблюсь между двумя фреймворками, которые могут быть полезны для моей работы, но Мне нужен ваш совет , потому что я не допустил бы здесь ошибок.
- Играть! Framework (Java)
- Плюсы :
- Маршрутизатор ориентирован на RESTFul (вы определяете метод (GET, POST и т. Д.), Запрос и класс.метод для использования)
- Вам не нужно делать один урок за действие
- Минусы :
- Модель уже включена. Если я позже изменю фреймворк, возможно, я застряну с ним (но, видимо, нет, поскольку Play!, Похоже, использует JPA)
- Возможно, тот факт, что если я хочу отправить параметры действию, которое будет определено в сигнатуре метода, я должен принять свойства ClassName.properties вместо json, как {ClassName: {properties: 'value'}}
- Tornado Web (Python)
- Плюсы :
- Кажется очень мощным: используется FriendFeed (по крайней мере)!
- Аутентификация через основные OpenId, OAuth и Facebook уже реализована
- Очень легкий (может быть проблема)
- Минусы :
- Не так популярно: вы лучше разбираетесь в работе, переходя к коду, чем документ
- URL-адреса кажутся очень простыми (насколько я видел, вам нужно определить все URL-адреса в одном файле, включая весь класс)
- Один класс за действие (может быть тяжелым)
- Должны быть сделаны декораторы для базовых (тестирование, если пользователь аутентифицирован и т. Д.)
Для их использования в производстве это было бы легко сделать с помощью apache & mod_proxy или nginx.
Итак, мои вопросы довольно просты: что бы вы выбрали (между этими двумя или другими, я не закрыт для предложений) и почему?
Большое спасибо за совет!