Нужен ли REST для веб-службы, не требующей аутентификации?

0

Я растерялся в связи с необходимостью REST для веб-службы. Является noob, когда дело доходит до веб-службы, масштабируемости и т.д.

Это мое требование

-Need, чтобы получить некоторые данные, например: имена студентов в классе и их фотографии, а также их адрес и прочее

-There не является аутентификацией/токенами, требуемыми, поскольку данные общедоступны

Мой вопрос:

-Do Мне нужно использовать REST для этого? Будет ли работа MYSQL + PHP Webservice, которая связывается с использованием HTTP GET и POST?

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

-Do es REST предлагает значительные преимущества, так как я не знаю JSON и прочее, будет ли он выигрывать за кривую обучения?

  • 0
    Если вы просто выбираете данные, возможно, будет использоваться HTTP GET. HTTP POST будет использоваться, если вы размещаете данные на сервер
  • 0
    Ошибка .. исправлена
Показать ещё 1 комментарий
Теги:
rest
web-services

3 ответа

1

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

Я думаю, что эта ссылка может помочь вам понять, как реализовать веб-API (например, приложение RESTful):

Вот мои ответы на ваши вопросы:

  • REST не требует аутентификации для доступа к ресурсам. Однако REST интегрирует механизмы аутентификации на основе Authorization HTTP-заголовка.

  • REST описывает эффективные методы использования HTTP, но, конечно, вы можете использовать его так, как хотите ;-) REST рекомендует использовать методы HTTP для того, что они на самом деле. Короче говоря, GET для получения данных, PUT/POST для обновления данных (POST основном для добавления данных и PUT для их обновления) и DELETE для удаления данных. POST также может использоваться для того, что мы можем видеть как действия. REST также использует определенные URI с переменными пути. Если я использую ваш пример, URI для списка учеников в классе будет: /classrooms/<classid>/students. REST также определяет механизм для запроса определенного формата контента, такого как JSON, на основе заголовка Accept. Фактически, вы знакомы с большинством из этих аспектов, если вы реализуете веб-приложения в течение нескольких лет, а REST предоставляет вам способ разработки приложения, чтобы в лучшем случае использовать их.

  • Что касается производительности, я бы сказал нет. Одним из ключевых аспектов REST является то, что приложения RESTful являются апатридами. На стороне сервера не должно быть никакого состояния. Это позволяет приложениям масштабироваться более легко. Я не вижу причин для плохих выступлений в отношении массовых обновлений. На самом деле, вам решать их. REST оставляет выбор содержимого формата данных, отправленного на сервер, и способ эффективно обрабатывать их на стороне сервера. Вы можете использовать синхронный и асинхронный подход. Для асинхронного подхода вы должны вернуть код состояния HTTP 202. Такой подход позволяет вам контролировать рабочую нагрузку обновлений для одновременных пользователей. Вы можете добавить массовые обновления в очередь и обрабатывать их по одному на один в отдельном процессе или потоке. Пример приложения RESTful, использующего массовые обновления, - ElasticSearch. См. Эту ссылку: http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/bulk.html.

  • Основное преимущество REST заключается в том, что он позволяет в лучшем случае использовать механизмы HTTP. Еще одна вещь, которая приходит на ум, заключается в том, что теперь есть некоторые инструменты, позволяющие создавать клиентские комплекты для использования вашего приложения и создавать документацию о контракте ваших приложений RESTful. См. Swagger (Swagger, Swagger UI, Swagger Codegen) и RAML. Эти ссылки могут помочь вам: http://swagger.io/ и http://raml.org/. Еще один инструмент, Restlet Studio (http://studio.restlet.com/#/), поможет вам понять все эти концепции, поскольку он поставляется с образцом приложения. Что касается кривой обучения, я не думаю, что это слишком важно, поскольку, если вы уже внедряете веб-приложение, вы знаете большинство концепций.

  • Что касается формата, который вы будете использовать для контента, JSON, похоже, подходит. Однако REST не применяет какой-либо контент. Он предоставляет механизм для запроса определенного контента (Conneg, т.е. Согласование контента на основе заголовка Accept), но вам не нужно его использовать. REST позволяет вам управлять этим контентом в вашем приложении.

Надеюсь, он тебя тронет, Тьерри

  • 0
    Большое спасибо. Что вы думаете о простом использовании основных функций php (использование стандартных запросов к базе данных для подключения к mysql) и связи со сценарием php с использованием HTTP POST и GET с использованием httphandler в Android (возможно, с использованием JSON)? Действительно ли требуется REST, я мог бы сделать это всего несколькими скриптами. Это повлияет на производительность.
  • 0
    Честно говоря, я не знаю точно, что будет делать ваше приложение. Конечно, возможно использование только методов POST и GET, а использование REST не улучшит производительность с первого взгляда. Но я думаю, что у вас будет более чистый дизайн с REST (вы будете использовать HTTP для того, что разработано). Это моя точка зрения.
1

Лучше использовать REST. Вы можете просто разместить свои данные как HTTP или JSON, а затем обработать эти данные в своей функции и вернуть результат как JSON.

Я рекомендую использовать CakePHP или Yii, потому что он прост в использовании.

В случае массовой транзакции вы можете использовать MongoDb в качестве своей базы данных.

0

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

Количество используемых ресурсов зависит от того, как вы выполняете запросы и ответы на стороне сервера.

Вы должны это узнать, это улучшит ваши знания, поскольку вы сможете совместно изучить другие шаблоны (шлюз, репозиторий, MVC), чтобы сделать ваш серверный профессионалом и поддерживаемым.

Мое предложение для вашего приложения реализует серверную часть с использованием такой структуры, как Laravel (я рекомендую), CakePHP или тому подобное. Я говорю, потому что ваше приложение, похоже, просто взаимодействует с заранее определенными моделями.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню