GET : просить ПолучатьRequest-URI Идентифицированный ресурс
POST : В запросе-URI Идентифицированный Добавить новые данные после ресурса
HEAD : просить Получать由Request-URIИдентифицированный ресурсизответзаголовок сообщения
PUT : проситьсервер хранит ресурс и использует Request-URI в качестве его идентификатора
DELETE :проситьсерверудалитьRequest-URIИдентифицированный ресурс
OPTIONS : просить Запроссерверпроизводительность,или Пользовательский запрос иресурс相关из选项和需求
Обычно используетсяответкод состояния(существоватьRESTful есть важные приложения)
200 OK //Клиент просить успешно
400 Bad Request //Клиент просить имеет синтаксическую ошибку и не может быть понят сервером
401 Unanthorized //сервер получил запрос, но сервер отказался предоставлять услугу
404 Not Found //проситьресурс不存существовать
500 Internal Serval Error //На сервере произошла непредвиденная ошибка.
503 Сервер недоступен // сервер в настоящее время не может обработать запрос клиента
Разница между архитектурой RESTful и другими архитектурами
Существует несколько способов разработки API. Еще один популярный способ разработки — SOAP WebService.
SOAP WebService
WebService да一种跨编程语言和跨操作系统平台из远程调用технология。Он использует инкапсуляцию формата XML при отправке просить по протоколу HTTP и получении результатов.,и добавил несколько конкретных заголовков HTTP-сообщений,Эти конкретные заголовки HTTP-сообщений и формат содержимого XML представляют собой протокол SOAP.
контраст
Эффективность и простота использования: SOAP продолжает расширять содержимое своего протокола в связи с различными потребностями, что приводит к снижению производительности обработки SOAP. В то же время простота использования и стоимость обучения также возросли. И RESTful API существоватьпроситьметод、ресурс、地址都进ХОРОШО了规范,Он максимально использует концепцию дизайна исходного протокола приложения HTTP.
Безопасность: RESTful Он больше подходит для интерфейсов на основе ресурсов, которые подходят для сценариев с высокими требованиями к эффективности, но низкими требованиями к безопасности. МЫЛО Его зрелость может быть предоставлена разработчикам, которым необходимо предоставить несколько языков разработки и иметь более высокие требования к безопасности. интерфейс приносит удобство, в целях безопасности можно применять сертификаты на клиенте и сервере. Поэтому важно взглянуть на сценарий применения.
Используйте RESTful
Проектирование RESTful API
Путь к ресурсу (URI): Ядро RESTful ориентировано на ресурсы, как планировать Путь к ресурс важен
Фильтровать Информация: Например, при получении списка ресурсов происходит операция подкачки/операция запроса. В это время Фильтровать необходимо распределять разумно. информацию,Фильтровать информация Слишком большое количество настроек может нарушить RESTful API Что касается ограничений URI.
код Состояние: Когда клиент отправляет запрос, какой код ответа должен получить сервер? состояния
Обработка ошибки: Какую информацию о состоянии следует возвращать, если обнаружено, что существует проблема с параметрами, переданными клиентом.
Возврат результаты: например, при использовании POST-ресурсов необходимо вернуть экземпляр ресурса; при GET-списке ресурсов необходимо вернуть массив ресурсов;
Путь к ресурсу
В архитектуре RESTful каждый URL-адрес представляет собой ресурс, поэтому URL-адрес не может содержать глаголов, а только существительные. Вообще говоря, существительные в API должны стоять во множественном числе. Например, использование пользователей отражает URI ресурса пользователя вместо использования пользователя.
Пример нравиться: Существует API, который предоставляет информацию о зоопарке.,Также включает информацию о различных животных и сотрудниках.,那么它из Путь к ресурс должен выглядеть так.
Язык кода:javascript
копировать
https://api.example.com/v1/zoos //Ресурсы зоопарка. Используйте заголовок протокола https; добавьте номер версии v1, поскольку API может измениться в будущем. Есть два способа добавить номер версии: один — добавить его к адресу, другой — добавить его в заголовок HTTP «просить зоопарки» во множественном числе;
https://api.example.com/v1/animals //животные ресурсы
https://api.example.com/v1/employees //сотрудникресурс
PATCH:существоватьсервервозобновлятьресурс(客户端提供改变из属性,Возврат сервера происходит тольковозобновлятьиз Поле)
DELETE:отсерверудалитьресурс
примернравиться:
Язык кода:javascript
копировать
POST/zoos : Создать новый зоопарк
GET/zoos/ID : Получить информацию о конкретном зоопарке
PUT/zoos/ID : Обновить информацию для конкретного зоопарка
DELETE/zoos/ID : удалитькакой-то зоопарк
Фильтровать информацию
Если записей слишком много, сервер не сможет вернуть их все пользователю. В этом случае необходим скрининг. При фильтрации API должен предоставить параметр для фильтрации возвращаемых результатов.
примернравиться:
Язык кода:javascript
копировать
?offset = 10 :Укажите начальную позицию возвращаемой записи.
?page = 2&per_page = 100 :Укажите, какая страница и количество записей на странице
?sortby = name&order = asc :обозначение Возврат сортировка результатов и порядок сортировки
?animal_type_id = 1 :Укажите условия фильтра
код состояния
код сервера возвращается пользователю Состояние и оперативная информация, используйте стандартный HTTP-код. состояния
200 ОК сервер успешно вернул данные пользователя просить
201 CREATED Новые или измененные данные успешно
204 NO CONTENT Данные успешно удалены
400 BAD REQUEST В запросе, отправленном пользователем, произошла ошибка.
401 Неавторизованный означает, что пользователь не аутентифицирован и не может выполнить текущую операцию.
403 Forbidden указывает, что доступ пользователя запрещен.
422 Unprocesable Entity При создании объекта произошла ошибка валидации. Например, при создании пользовательского ресурса требуются имя пользователя и пароль, но интерфейс предоставляет только поле имени пользователя, тогда будет возвращено 422. код состояния,и вернуть сообщение об ошибке:”Пароль не может быть пустым“
500 INTERNAL SERVER ERROR Внутренняя ошибка сервера, сервер в данный момент не может обработать просьить.
Обработка ошибок
Если код Состояние равно 4xxили5xx, поэтому пользователю должно быть возвращено сообщение об ошибке. Вообще говоря,В возвращенной информации в качестве имени ключа используется ошибка.,Сообщение об ошибке можно использовать в качестве значения ключа.,примернравиться:
Язык кода:javascript
копировать
{
"error":"Ошибка параметра"
}
Возврат результатов
Для различных операций (таких как GET, POST) результаты, возвращаемые сервером пользователю, должны соответствовать следующим спецификациям:
GET/collections: возвращает список (массив) объектов ресурсов.
GET/collections/identity: при чтении ресурсов передайте идентификатор (идентификатор), и сервер вернет один объект ресурса, указанный идентификатором.
POST/collections: возвращает вновь созданный объект ресурса.
PUT/collections/identity: возвращает полный объект ресурса.
Фильтровать информацию: Фильтрация статей по страницам
код состояния: 200,404,422,403…
Обработка ошибок: Вывод сообщения об ошибке формата JSON
Возврат результаты: Выходной массив JSON и объект JSON.
Проектирование базы данных
Создайте в базе данных 2 новые таблицы:
Таблица пользователей: идентификатор, имя пользователя, пароль, время регистрации.
Таблица статей: идентификатор статьи, заголовок, содержание, время публикации, идентификатор пользователя.
Добавить файл перезаписи .htaccess Apache.
После этого вы можете выполнить соответствующую работу по разработке и кодированию в IDE.
Конечно, имея дело с RESTful Идея дизайна API, а также недавно популярный GraphQL — это язык запросов API, который вводит идею о том, что вы видите то, что вы получаете, что может помочь улучшить процесс разработки и производительность приложений. (ссылка: http://graphql.cn/ )