REST (Representational state transfer) – это стиль архитектуры программного обеспечения для распределенных систем, таких как World Wide Web, который, как правило, используется для построения веб-служб. Термин REST был введен в 2000 году Роем Филдингом, одним из авторов HTTP — протокола. Системы, поддерживающие REST, называются RESTful-системами.
В основном используются следующие HTTP — методы:
- GET — для получения одного или нескольких объектов
- POST — для создания, редактирования или удаления объектов
- PUT — для создания или изменения объекта
- PATCH — для создания или изменения объекта
- DELETE — для удаления объекта
Рассмотрим данные методы на следующем примере:
Допустим у нас есть некий ресурс, доступный по URL: «https://nowadays.name/resources/Books/», который хранит следующую информацию о книгах:
{ "objects":[ { "id":1, "name":"Python 2.7", "year":2008 }, { "id":2, "name":"Java", "year":2014 }, { "id":3, "name":"C++", "year":1999 } ] }
- Чтобы получить информацию о всех имеющихся книгах нам нужно выполнить GET запрос по следующему адресу: «https://nowadays.name/resources/Books/«
- Если мы хотим получить информацию только по 2й книге, то нам следует добавить id книги к URL. А именно, GET + «https://nowadays.name/resources/Books/2/«
- Чтобы добавить новую книгу, следует отправить POST или PUT запрос по адресу «https://nowadays.name/resources/Books/» c телом запроса, содержащим {«name»: «PHP», «year»: 2015}
- Чтобы удалить 3ю книгу, нужно отправить DELETE запрос по адресу «https://nowadays.name/resources/Books/3/» или можно отправить POST запрос по данному адресу, но с пустым телом запроса
- Если нам нужно изменить имя или год у первой книги, то следует использовать PATCH запрос по адресу «https://nowadays.name/resources/Books/1/» с телом запроса, содержащим {«name»: «New Name»} или {«year»: 2016}
- Если же нам требуется изменить полностью весь объект, то для этих целей подойдет PUT запрос по адресу «https://nowadays.name/resources/Books/1/» с телом запроса, содержащим {«name»: «Python 3.0», «year»: 2017}