2 added
1 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Попробуем задать себе вопрос: кто является пользователем нашего проекта The Phonebook?</p>
1
<p>Попробуем задать себе вопрос: кто является пользователем нашего проекта The Phonebook?</p>
2
<h2>Пользователи</h2>
2
<h2>Пользователи</h2>
3
<p>В этом случае наш проект должен представлять из себя классический сайт, с удобным интерфейсом, работающий под разными устройствами и браузерами. Этим мы обязательно займёмся, но в другой раз.</p>
3
<p>В этом случае наш проект должен представлять из себя классический сайт, с удобным интерфейсом, работающий под разными устройствами и браузерами. Этим мы обязательно займёмся, но в другой раз.</p>
4
<h2>Другие сервисы</h2>
4
<h2>Другие сервисы</h2>
5
<p>В такой ситуации требования резко изменяются. Роботам без разницы то, как выглядят данные, им ничего, кроме самих данных, собственно, и не нужно. Сервисы такого плана предоставляют так называемый api (эй-пи-ай), что расшифровывается как application programming interface. В случае с http это набор урлов, по которым мы можем получить необходимые данные либо изменить их. Главное требование к api состоит в том, чтобы данные отдавались в машиночитаемом представлении, в идеале не зависящем от конкретного языка или платформы.</p>
5
<p>В такой ситуации требования резко изменяются. Роботам без разницы то, как выглядят данные, им ничего, кроме самих данных, собственно, и не нужно. Сервисы такого плана предоставляют так называемый api (эй-пи-ай), что расшифровывается как application programming interface. В случае с http это набор урлов, по которым мы можем получить необходимые данные либо изменить их. Главное требование к api состоит в том, чтобы данные отдавались в машиночитаемом представлении, в идеале не зависящем от конкретного языка или платформы.</p>
6
<p>Разберёмся в том, что это означает. Если мы возьмём html, то про него можно сказать следующее:</p>
6
<p>Разберёмся в том, что это означает. Если мы возьмём html, то про него можно сказать следующее:</p>
7
<ul><li>Задает структуру представления информации;</li>
7
<ul><li>Задает структуру представления информации;</li>
8
<li>Совсем немного определяет семантику (html5, scheme);</li>
8
<li>Совсем немного определяет семантику (html5, scheme);</li>
9
<li>Может содержать ошибки, что допускается браузерами, но совершенно не подходит для программного интерфейса;</li>
9
<li>Может содержать ошибки, что допускается браузерами, но совершенно не подходит для программного интерфейса;</li>
10
<li>Меняется хаотично, а нам не хотелось бы, чтобы сервис падал, потому что верстальщик поправил теги на странице;</li>
10
<li>Меняется хаотично, а нам не хотелось бы, чтобы сервис падал, потому что верстальщик поправил теги на странице;</li>
11
-
<li>Сод��ржит только то, что нужно для вывода, а программный интерфейс часто требует дополнительных данных.</li>
11
+
<li>Содержит только то, что нужно для вывода, а программный интерфейс часто требует дополнительных данных.</li>
12
</ul><p>Как видно, html не подходит на роль формата обмена между сервисами, но зато подходит json.</p>
12
</ul><p>Как видно, html не подходит на роль формата обмена между сервисами, но зато подходит json.</p>
13
+
<h2>Media Type</h2>
13
<p>При передаче контента по интернету мы должны явно специфицировать, какого типа этот контент. Достигается это использованием заголовка content-type. А вот значение, которое можно туда подставить, не является произвольным. Существует такое понятие, как media type (раньше - MIME type), которое представляет из себя строковый идентификатор. Для json он выглядит так: application/json.</p>
14
<p>При передаче контента по интернету мы должны явно специфицировать, какого типа этот контент. Достигается это использованием заголовка content-type. А вот значение, которое можно туда подставить, не является произвольным. Существует такое понятие, как media type (раньше - MIME type), которое представляет из себя строковый идентификатор. Для json он выглядит так: application/json.</p>
14
<p>Как видно из примера выше, кроме сериализации данных в json мы так же установили заголовок, указывающий на то, какого типа наш контент. Для этого пришлось воспользоваться интерфейсной функцией объекта response - setHeader.</p>
15
<p>Как видно из примера выше, кроме сериализации данных в json мы так же установили заголовок, указывающий на то, какого типа наш контент. Для этого пришлось воспользоваться интерфейсной функцией объекта response - setHeader.</p>
15
<h2>Curl</h2>
16
<h2>Curl</h2>
16
<p>При выполнении запроса к серверу мы должны указывать тип формата, в котором хотим получить ответ. С помощью curl это делается так:</p>
17
<p>При выполнении запроса к серверу мы должны указывать тип формата, в котором хотим получить ответ. С помощью curl это делается так:</p>
17
18