API Flashcards
How to work API? (32 cards)
HTTP
Протокол передачи гипертекста
METHOD
Что сделать на сервере?
URL
Адрес ресурса
GET
Просит сервер получить ресурс
POST
Просит сервер создать новый ресурс
PUT
Просит сервер изменить имеющийся ресурс
DELETE
Просит сервер удалить ресурс
HEADERS
Уточняют некоторую информацию о запросе, сообщая дополнительный контекст или ограничивая его некоторыми логическими условиями
BODY
Данные, которые клиент хочет отправить серверу
Клиент
Программа, которая обменивается данными с сервером
Какие есть форматы данных в HTTP запросах?
XML и JSON
Что представляет собой JSON?
JSON представляет собой словарь вида:
{
“crust”: “original”,
“toppings”: [“cheese”, “pepperoni”, “garlic”],
“status”: “cooking”
}
Что представляет собой XML?
XML представляет собой расширяемый язык разметки в виде блоков. Блок называется узел или нода(node)
Пример:
<order>
<crust>original</crust>
<toppings>
<topping>cheese</topping><topping>pepperoni</topping><topping>garlic</topping>
</toppings>
<status>cooking</status>
</order>
Headers
Accept: …
Определяет запрошенный формат для ответа клиенту.
Т.е. Если клиент может принять только JSON, тогда Accept: application/json
Headers
Content-type: …
Указывает на то, какой формат данных отправляется на сервер.
Т.е. Если клиент хочет отправить на сервер JSON, тогда Content-type: application/json
URI
Имя и адрес ресурса в сети, включает в себя URL и URN
Т.е. если URL = yandex.ru, а URN = /images.png
Тогда URI = yandex.ru/images.png
URN
Имя ресурса в сети, определяет только название ресурса, но не говорит, как к нему подключиться
Из каких частей состоит URI?
URI содержит в себе следующие части:
1) Схема (scheme) - показывает на то, как обращаться к ресурсу, чаще всего это сетевой протокол (http, ftp, ldap)
2) Иерархическая часть (hier-part) - данные, необходимые для идентификации ресурса (например, адрес сайта)
3) Запрос (query) - необязательные дополнительные данные ресурса (например, поисковой запрос)
4) Фрагмент (fragment) – необязательный компонент для идентификации вторичного ресурса (например, место на странице)
Общий синтаксис URI выглядит так:
URI = scheme “:” hier-part [ “?” query ] [ “#” fragment ]
Из каких частей состоит URL?
URL содержит следующую информацию:
1) Протокол, который используется для доступа к ресурсу – http, https, ftp
2) Расположение сервера с использованием IP-адреса или имени домена - например, wiki.merionet.ru - это имя домена. https://192.168.1.17 - здесь ресурс расположен по указанному IP-адресу
3) Номер порта на сервере. Например, http://localhost: 8080, где 8080 - это порт.
4) Точное местоположение в структуре каталогов сервера. Например - https://wiki.merionet.ru/ip-telephoniya/ - это точное местоположение, если пользователь хочет перейти в раздел про телефонию на сайте.
5) Необязательный идентификатор фрагмента. Например, https://www.google.com/search?ei=qw3eqwe12e1w&q=URL, где q = URL - это строка запроса, введенная пользователем.
Синтаксис:
[protocol]://www.[domain_name]:[port 80]/[path or exaction resource location]?[query]#[fragment]
Аутентификация
Процедура проверки личности
В случае интернета - пользователь вводит свой логин и пароль
Что требует базовая аутентификация?
Только логин и пароль
Headers
Authorization:
В данном заголовке указываются данные необходимые для авторизации на сервере
Аутентификация с помощью ключа API
Пользователь получает доступ к данным с помощью сгенерированного ключа.
Ключ указывается в заголовке, url-адресе или даже в данных
OAuth2
Протокол авторизации, позволяющий выдать права на доступ к данным пользователя одному сервису к другому сервису