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