API Flashcards

How to work API? (32 cards)

1
Q

HTTP

A

Протокол передачи гипертекста

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

METHOD

A

Что сделать на сервере?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

URL

A

Адрес ресурса

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

GET

A

Просит сервер получить ресурс

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

POST

A

Просит сервер создать новый ресурс

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

PUT

A

Просит сервер изменить имеющийся ресурс

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

DELETE

A

Просит сервер удалить ресурс

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

HEADERS

A

Уточняют некоторую информацию о запросе, сообщая дополнительный контекст или ограничивая его некоторыми логическими условиями

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

BODY

A

Данные, которые клиент хочет отправить серверу

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Клиент

A

Программа, которая обменивается данными с сервером

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Какие есть форматы данных в HTTP запросах?

A

XML и JSON

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Что представляет собой JSON?

A

JSON представляет собой словарь вида:

{
“crust”: “original”,
“toppings”: [“cheese”, “pepperoni”, “garlic”],
“status”: “cooking”
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Что представляет собой XML?

A

XML представляет собой расширяемый язык разметки в виде блоков. Блок называется узел или нода(node)

Пример:

<order>
<crust>original</crust>
<toppings>
<topping>cheese</topping><topping>pepperoni</topping><topping>garlic</topping>
</toppings>
<status>cooking</status>
</order>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Headers
Accept: …

A

Определяет запрошенный формат для ответа клиенту.
Т.е. Если клиент может принять только JSON, тогда Accept: application/json

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Headers
Content-type: …

A

Указывает на то, какой формат данных отправляется на сервер.
Т.е. Если клиент хочет отправить на сервер JSON, тогда Content-type: application/json

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

URI

A

Имя и адрес ресурса в сети, включает в себя URL и URN
Т.е. если URL = yandex.ru, а URN = /images.png
Тогда URI = yandex.ru/images.png

17
Q

URN

A

Имя ресурса в сети, определяет только название ресурса, но не говорит, как к нему подключиться

18
Q

Из каких частей состоит URI?

A

URI содержит в себе следующие части:

1) Схема (scheme) - показывает на то, как обращаться к ресурсу, чаще всего это сетевой протокол (http, ftp, ldap)
2) Иерархическая часть (hier-part) - данные, необходимые для идентификации ресурса (например, адрес сайта)
3) Запрос (query) - необязательные дополнительные данные ресурса (например, поисковой запрос)
4) Фрагмент (fragment) – необязательный компонент для идентификации вторичного ресурса (например, место на странице)
Общий синтаксис URI выглядит так:

URI = scheme “:” hier-part [ “?” query ] [ “#” fragment ]

19
Q

Из каких частей состоит URL?

A

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]

20
Q

Аутентификация

A

Процедура проверки личности
В случае интернета - пользователь вводит свой логин и пароль

21
Q

Что требует базовая аутентификация?

A

Только логин и пароль

22
Q

Headers
Authorization:

A

В данном заголовке указываются данные необходимые для авторизации на сервере

23
Q

Аутентификация с помощью ключа API

A

Пользователь получает доступ к данным с помощью сгенерированного ключа.
Ключ указывается в заголовке, url-адресе или даже в данных

24
Q

OAuth2

A

Протокол авторизации, позволяющий выдать права на доступ к данным пользователя одному сервису к другому сервису

25
Авторизация
Определяет разрешения на доступ к различным ресурсам. Т.е. это некие права пользователя в разрезе ролевой модели (пользователь/поставщик/разработчик/администратор)
26
SOAP
Это схема взаимодействия на основе XML, которая имеет стандартизованные структуры для запросов и ответов.
27
REST
это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Архитектурный стиль – это набор согласованных ограничений и принципов проектирования, позволяющий добиться определённых свойств системы.
28
Синхронное взаимодействие
Система не может продолжить работу, пока не получит ответ от другой системы
29
Ассинхронное взаимодействие
Две системы работают параллельно. Если ответ от системы 2 не получен, то это не мешает продолжить работу системе 1.
30
Ассинхронное реактивное взаимодействие
Клиент А отправляет запрос серверу Б, сервер Б принимает запрос и отправляет клиенту А ссылку, куда придет ответ, когда он будет готов
31
Ассинхронное ассинхронное взаимодействие
Клиент А постоянно отправляет запросы серверу Б, чтобы узнать готов ли его запрос Х
32
4 стиля взаимодействия приложений
1)Передача файлов (File Transfer). Приложения обмениваются между собой данными через файлы с ними: одно создаёт файлы с данными, которые нужны другим, и само использует файлы, созданные другими. 2) Общая база данных (Shared Database). Данные, нужные разным приложениям, хранятся в одной базе. Все приложения обращаются к этой базе, чтобы получить данные. 3)Удалённый вызов процедур (Remote Procedure Invocation — RPI или Remote Procedure Call — RPC). Каждое приложение описывает для других все процедуры, которые можно вызвать удалённо (например, с другого компьютера), чтобы обменяться данными или дать указания. Процедурой называют часть программного кода, которая выполняет определённую функцию. Вызовом процедуры — выполнение функции. 4) Обмен сообщениями (Messaging). Приложения связаны общей системой обмена сообщениями. Через неё они передают друг другу данные и указания.