Найти в Дзене
NOWADAYS MEDIA

Что такое REST API и как с ним работать?

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}