HTML Diff
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