API Flashcards

How to work API?

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
Q

Авторизация

A

Определяет разрешения на доступ к различным ресурсам.
Т.е. это некие права пользователя в разрезе ролевой модели (пользователь/поставщик/разработчик/администратор)

26
Q

SOAP

A

Это схема взаимодействия на основе XML, которая имеет стандартизованные структуры для запросов и ответов.

27
Q

REST

A

это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Архитектурный стиль – это набор согласованных ограничений и принципов проектирования, позволяющий добиться определённых свойств системы.

28
Q

Синхронное взаимодействие

A

Система не может продолжить работу, пока не получит ответ от другой системы

29
Q

Ассинхронное взаимодействие

A

Две системы работают параллельно. Если ответ от системы 2 не получен, то это не мешает продолжить работу системе 1.

30
Q

Ассинхронное реактивное взаимодействие

A

Клиент А отправляет запрос серверу Б, сервер Б принимает запрос и отправляет клиенту А ссылку, куда придет ответ, когда он будет готов

31
Q

Ассинхронное ассинхронное взаимодействие

A

Клиент А постоянно отправляет запросы серверу Б, чтобы узнать готов ли его запрос Х

32
Q

4 стиля взаимодействия приложений

A

1)Передача файлов (File Transfer). Приложения обмениваются между собой данными через файлы с ними: одно создаёт файлы с данными, которые нужны другим, и само использует файлы, созданные другими.
2) Общая база данных (Shared Database). Данные, нужные разным приложениям, хранятся в одной базе. Все приложения обращаются к этой базе, чтобы получить данные.
3)Удалённый вызов процедур (Remote Procedure Invocation — RPI или Remote Procedure Call — RPC). Каждое приложение описывает для других все процедуры, которые можно вызвать удалённо (например, с другого компьютера), чтобы обменяться данными или дать указания. Процедурой называют часть программного кода, которая выполняет определённую функцию. Вызовом процедуры — выполнение функции.
4) Обмен сообщениями (Messaging). Приложения связаны общей системой обмена сообщениями. Через неё они передают друг другу данные и указания.