Я растерялся в связи с необходимостью REST для веб-службы. Является noob, когда дело доходит до веб-службы, масштабируемости и т.д.
Это мое требование
-Need, чтобы получить некоторые данные, например: имена студентов в классе и их фотографии, а также их адрес и прочее
-There не является аутентификацией/токенами, требуемыми, поскольку данные общедоступны
Мой вопрос:
-Do Мне нужно использовать REST для этого? Будет ли работа MYSQL + PHP Webservice, которая связывается с использованием HTTP GET и POST?
-If Я пойду с таким подходом, это повлияет на производительность приложения, когда будут массовые данные и будет ли он масштабироваться? Максимальное количество пользователей, которые могут использовать приложение, составляет всего 50 штук.
-Do es REST предлагает значительные преимущества, так как я не знаю JSON и прочее, будет ли он выигрывать за кривую обучения?
Я бы сказал, что 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 позволяет вам управлять этим контентом в вашем приложении.
Надеюсь, он тебя тронет, Тьерри
Лучше использовать REST. Вы можете просто разместить свои данные как HTTP или JSON, а затем обработать эти данные в своей функции и вернуть результат как JSON.
Я рекомендую использовать CakePHP или Yii, потому что он прост в использовании.
В случае массовой транзакции вы можете использовать MongoDb в качестве своей базы данных.
Вы можете реализовать любой протокол, который вы хотите сделать, но с помощью REST убедитесь, что вы следуете общей процедуре, которая сделает ваше приложение более удобным.
Количество используемых ресурсов зависит от того, как вы выполняете запросы и ответы на стороне сервера.
Вы должны это узнать, это улучшит ваши знания, поскольку вы сможете совместно изучить другие шаблоны (шлюз, репозиторий, MVC), чтобы сделать ваш серверный профессионалом и поддерживаемым.
Мое предложение для вашего приложения реализует серверную часть с использованием такой структуры, как Laravel (я рекомендую), CakePHP или тому подобное. Я говорю, потому что ваше приложение, похоже, просто взаимодействует с заранее определенными моделями.