Как выбрать идеальный фреймворк RESTful?

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

Я хочу создать (довольно сложный) проект, который будет выполняться через API. Я открыт для любого языка программирования (в основном PHP, Python, Java) и нашел много фреймворков, которые более ориентированы на создание веб-сервера RESTful.

Единственное серьезное ограничение, которое у меня есть, это то, что у меня будет многоразовый, простой и не зависящий от кода и спагетти пакет, чтобы впоследствии легко улучшить мой API или даже без проблем переключиться на другую структуру.

Для Python и Java я подумал о создании специального пакета. Каждое действие вызовет специальный метод в пакете, пакет вернет object / dict, и действие преобразует его в правильный формат.

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

  1. Играть! Платформа (Java)

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

    1. Играйте! Платформа (Java)

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

      1. Играйте! Платформа (Java)
        • Плюсы :
          • Маршрутизатор ориентирован на RESTFul (вы определяете метод (GET, POST и т. Д.), Запрос и метод class.method для использования)
          • Вам не нужно создавать один класс для каждого действия
        • Минусы :
          • Модель уже включена. Если я позже изменю структуру, возможно, я застряну в ней (но, очевидно, не потому, что Play!, Похоже, использует JPA)
          • Может быть, тот факт, что если я хочу отправить параметры действия, которое будет определено в сигнатуре метода , Мне нужно использовать ClassName.properties вместо json, например {ClassName: {properties: 'value'}}
      2. Tornado Web (Python)
        • Плюсы :
          • Кажется очень мощным: используется FriendFeed (по крайней мере)!
          • Уже реализована аутентификация через основной OpenId, OAuth и Facebook
          • Очень легкий (может быть проблемой)
        • Минусы :
          • Не так популярно: вы лучше понимаете работу, углубляясь в код, чем документ.
          • URL-адреса кажутся очень простыми (насколько я видел, вы должны определить все URL-адреса в одном файле, со всеми включенный класс)
          • Один класс на действие (что может быть тяжелым)
          • Необходимо создать декораторы для базового (проверка подлинности пользователя и т. д.)

      Для их использования в производстве это было бы легко с apache & mod_proxy или nginx.

      Итак, мои вопросы довольно просты: что бы вы выбрали (между этими двумя или другими, я не закрываю для предложений) и почему?

      Большое спасибо за ваш совет !

9
задан Mike Scott 29 January 2012 в 23:43
поделиться