HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>API - понятие</a><ul><li><a>О наборе функций</a></li>
1 <ul><li><a>API - понятие</a><ul><li><a>О наборе функций</a></li>
2 </ul></li>
2 </ul></li>
3 <li><a>Принцип составления</a></li>
3 <li><a>Принцип составления</a></li>
4 <li><a>Причем тут интерфейс</a></li>
4 <li><a>Причем тут интерфейс</a></li>
5 <li><a>О вызовах</a><ul><li><a>Функция внутри утилиты</a></li>
5 <li><a>О вызовах</a><ul><li><a>Функция внутри утилиты</a></li>
6 <li><a>Из другой системы</a></li>
6 <li><a>Из другой системы</a></li>
7 <li><a>Вызов человеком</a></li>
7 <li><a>Вызов человеком</a></li>
8 <li><a>Автотестинг в помощь</a></li>
8 <li><a>Автотестинг в помощь</a></li>
9 <li><a>Косвенный вызов</a></li>
9 <li><a>Косвенный вызов</a></li>
10 </ul></li>
10 </ul></li>
11 <li><a>Тестирование</a></li>
11 <li><a>Тестирование</a></li>
12 <li><a>Endpoint - это…</a></li>
12 <li><a>Endpoint - это…</a></li>
13 <li><a>REST - что это</a><ul><li><a>Принципы REST</a></li>
13 <li><a>REST - что это</a><ul><li><a>Принципы REST</a></li>
14 <li><a>Примеры запросов</a></li>
14 <li><a>Примеры запросов</a></li>
15 </ul></li>
15 </ul></li>
16 <li><a>Что поможет лучше понять API</a></li>
16 <li><a>Что поможет лучше понять API</a></li>
17 </ul><p>Многие слышали об API, а также REST. В данной статье будет рассказано о том, что это за элементы, а также каковы принципы их использования на практике. Предложенная информация окажется одинаково полезной и новичкам, и продвинутым разработчикам.</p>
17 </ul><p>Многие слышали об API, а также REST. В данной статье будет рассказано о том, что это за элементы, а также каковы принципы их использования на практике. Предложенная информация окажется одинаково полезной и новичкам, и продвинутым разработчикам.</p>
18 <p>API - это Application Programming Interface. Технология, описывающая метод, который программное обеспечение предоставляет внешним пользователям для коммуникации с оным. Чаще всего - путем подключения к интернету.</p>
18 <p>API - это Application Programming Interface. Технология, описывающая метод, который программное обеспечение предоставляет внешним пользователям для коммуникации с оным. Чаще всего - путем подключения к интернету.</p>
19 <p>API может выступать взаимодействием с сервером утилиты на телефоне, между ноутбуками или иными устройствами. Это - пользовательский интерфейс. Он включает в себя:</p>
19 <p>API может выступать взаимодействием с сервером утилиты на телефоне, между ноутбуками или иными устройствами. Это - пользовательский интерфейс. Он включает в себя:</p>
20 <ul><li>функции;</li>
20 <ul><li>функции;</li>
21 <li>структуры;</li>
21 <li>структуры;</li>
22 <li>методы;</li>
22 <li>методы;</li>
23 <li>классы.</li>
23 <li>классы.</li>
24 </ul><p>Все это способствует грамотному взаимодействию одного ПО с другим. API предусматривает "мостики", которые дают возможность программе 1 получить доступ к данным программы Б или к определенному функционалу.</p>
24 </ul><p>Все это способствует грамотному взаимодействию одного ПО с другим. API предусматривает "мостики", которые дают возможность программе 1 получить доступ к данным программы Б или к определенному функционалу.</p>
25 <p>Простыми словами, это - "договор", который предоставляется задействованным контентом. Звучит как "Ко мне можно обратиться так и вот так, я в таком случае начну выполнять то и это".</p>
25 <p>Простыми словами, это - "договор", который предоставляется задействованным контентом. Звучит как "Ко мне можно обратиться так и вот так, я в таком случае начну выполнять то и это".</p>
26 <h3>О наборе функций</h3>
26 <h3>О наборе функций</h3>
27 <p>Во время работы приложения с пользовательским интерфейсом нужно учитывать его возможности. Оный отвечает на вопрос "Каким образом можно обратиться ко мне и моей системе?". Предусматривает:</p>
27 <p>Во время работы приложения с пользовательским интерфейсом нужно учитывать его возможности. Оный отвечает на вопрос "Каким образом можно обратиться ко мне и моей системе?". Предусматривает:</p>
28 <ul><li>операции, которые можно обработать и осуществить;</li>
28 <ul><li>операции, которые можно обработать и осуществить;</li>
29 <li>данные, поступаемые на вход;</li>
29 <li>данные, поступаемые на вход;</li>
30 <li>данные, которые отображаются на выходе софта.</li>
30 <li>данные, которые отображаются на выходе софта.</li>
31 </ul><p>Если представить пользовательский интерфейс в более простой форме для разработчика, то он будет напоминать описание функции: на входе есть данные, на выходе - тоже. При помощи кодификации происходит преобразование одного в другое.</p>
31 </ul><p>Если представить пользовательский интерфейс в более простой форме для разработчика, то он будет напоминать описание функции: на входе есть данные, на выходе - тоже. При помощи кодификации происходит преобразование одного в другое.</p>
32 <p>Согласно установленному определению, API представлен набором функций. Их может быть одна или несколько.</p>
32 <p>Согласно установленному определению, API представлен набором функций. Их может быть одна или несколько.</p>
33 <h2>Принцип составления</h2>
33 <h2>Принцип составления</h2>
34 <p>Каждый программер будет проводить группировку функций в зависимости от того, какой результат он хочет получить. Пример - по функционалу. Тогда потребуется:</p>
34 <p>Каждый программер будет проводить группировку функций в зависимости от того, какой результат он хочет получить. Пример - по функционалу. Тогда потребуется:</p>
35 <ul><li>интерфейс входа в систему - там осуществляется регистрация и авторизация;</li>
35 <ul><li>интерфейс входа в систему - там осуществляется регистрация и авторизация;</li>
36 <li>интерфейс пользовательского характер для отчетностей - разные функции будут предусматривать разного рода формулы;</li>
36 <li>интерфейс пользовательского характер для отчетностей - разные функции будут предусматривать разного рода формулы;</li>
37 <li>API платежных данных - для работы с банковскими организациями предназначается отдельная возможность.</li>
37 <li>API платежных данных - для работы с банковскими организациями предназначается отдельная возможность.</li>
38 </ul><p>Иногда создавать целую группу пользовательских интерфейсов нет никакой необходимости. Разработчик в праве сделать один общий API или дополнить его "под заказ".</p>
38 </ul><p>Иногда создавать целую группу пользовательских интерфейсов нет никакой необходимости. Разработчик в праве сделать один общий API или дополнить его "под заказ".</p>
39 <h2>Причем тут интерфейс</h2>
39 <h2>Причем тут интерфейс</h2>
40 <p>Рассматриваемая технология - это термин, который широко применяется в объектно-ориентированном программировании. При коддинге контракт - это и есть API. Он предусматривает следующие концепции:</p>
40 <p>Рассматриваемая технология - это термин, который широко применяется в объектно-ориентированном программировании. При коддинге контракт - это и есть API. Он предусматривает следующие концепции:</p>
41 <ul><li>инкапсуляция;</li>
41 <ul><li>инкапсуляция;</li>
42 <li>наследование;</li>
42 <li>наследование;</li>
43 <li>полиморфизм.</li>
43 <li>полиморфизм.</li>
44 </ul><p>При помощи инкапсуляции происходит раскрытие реализации. Для пользователя весь процесс будет предельно простым: нужно нажать на кнопку, чтобы получить отчет. Внутреннее устройство соответствующей "технологии" не играет роли для среднестатистического юзера. Программа просто предоставляет человеку интерфейс, посредством которого он сможет использовать предусматриваемый системой/программером функционал.</p>
44 </ul><p>При помощи инкапсуляции происходит раскрытие реализации. Для пользователя весь процесс будет предельно простым: нужно нажать на кнопку, чтобы получить отчет. Внутреннее устройство соответствующей "технологии" не играет роли для среднестатистического юзера. Программа просто предоставляет человеку интерфейс, посредством которого он сможет использовать предусматриваемый системой/программером функционал.</p>
45 <p>Чаще всего клиенты работают с GUI. Это - графический пользовательский интерфейс. Приложения будут контактировать непосредственно с API. Красивая "оболочка" в виде оформления им не требуется.</p>
45 <p>Чаще всего клиенты работают с GUI. Это - графический пользовательский интерфейс. Приложения будут контактировать непосредственно с API. Красивая "оболочка" в виде оформления им не требуется.</p>
46 <h2>О вызовах</h2>
46 <h2>О вызовах</h2>
47 <p>Данные в утилите удается вбить, откорректировать, вывести и просмотреть через специальный interface. Для ПО нужен API. Он может быть вызван разными способами:</p>
47 <p>Данные в утилите удается вбить, откорректировать, вывести и просмотреть через специальный interface. Для ПО нужен API. Он может быть вызван разными способами:</p>
48 <ul><li>система осуществляет вызов функции в пределах себя;</li>
48 <ul><li>система осуществляет вызов функции в пределах себя;</li>
49 <li>происходит операция, которая вызывает метод другой системы;</li>
49 <li>происходит операция, которая вызывает метод другой системы;</li>
50 <li>человек реализовывает задачу самостоятельно;</li>
50 <li>человек реализовывает задачу самостоятельно;</li>
51 <li>манипуляцией занимаются автотесты.</li>
51 <li>манипуляцией занимаются автотесты.</li>
52 </ul><p>Каждый вариант предусматривает передачу данных через тот или иной функционал. Далее каждый подход будет рассмотрен более внимательно.</p>
52 </ul><p>Каждый вариант предусматривает передачу данных через тот или иной функционал. Далее каждый подход будет рассмотрен более внимательно.</p>
53 <h3>Функция внутри утилиты</h3>
53 <h3>Функция внутри утилиты</h3>
54 <p>Части программы представляют собой элементы взаимодействующих друг с другом компонентов. Происходит это посредством программного уровня - на API.</p>
54 <p>Части программы представляют собой элементы взаимодействующих друг с другом компонентов. Происходит это посредством программного уровня - на API.</p>
55 <p>Такой вариант является самым простым. Связано это с тем, что автором interface выступает разработчик. Он же - непосредственная целевая аудитория и потребитель. С неактуальной документацией и устаревшими данными такой пользователь не столкнется.</p>
55 <p>Такой вариант является самым простым. Связано это с тем, что автором interface выступает разработчик. Он же - непосредственная целевая аудитория и потребитель. С неактуальной документацией и устаревшими данными такой пользователь не столкнется.</p>
56 <p>Для того, чтобы свести к минимуму заминки приема, нужно внимательно изучать комментарии, которые содержит код. Они укажут на принципы функционирования API.</p>
56 <p>Для того, чтобы свести к минимуму заминки приема, нужно внимательно изучать комментарии, которые содержит код. Они укажут на принципы функционирования API.</p>
57 <h3>Из другой системы</h3>
57 <h3>Из другой системы</h3>
58 <p>В пределах одного устройства всегда происходит взаимодействие приложений друг с другом на аппаратном уровне. Вызов interface из другой системы - распространенный прием, который тестируется в интеграторах.</p>
58 <p>В пределах одного устройства всегда происходит взаимодействие приложений друг с другом на аппаратном уровне. Вызов interface из другой системы - распространенный прием, который тестируется в интеграторах.</p>
59 <p>Здесь система будет через API извлекать данные из другого программного обеспечения. Можно как получать информацию, так и передавать ее.</p>
59 <p>Здесь система будет через API извлекать данные из другого программного обеспечения. Можно как получать информацию, так и передавать ее.</p>
60 <p>Выглядит это так:</p>
60 <p>Выглядит это так:</p>
61 <ul><li>пользователь вводит букву на сайте;</li>
61 <ul><li>пользователь вводит букву на сайте;</li>
62 <li>страница отправляет запрос в подсказки по API;</li>
62 <li>страница отправляет запрос в подсказки по API;</li>
63 <li>соответствующие "указатели" возвращают ответ;</li>
63 <li>соответствующие "указатели" возвращают ответ;</li>
64 <li>сайт обрабатывает полученный контент и выводит результат клиенту.</li>
64 <li>сайт обрабатывает полученный контент и выводит результат клиенту.</li>
65 </ul><p>Так будет с каждым отдельным символом. Стоит учесть, что "подсказки" в приведенном примере представлены отдельным документом (системой).</p>
65 </ul><p>Так будет с каждым отдельным символом. Стоит учесть, что "подсказки" в приведенном примере представлены отдельным документом (системой).</p>
66 <h3>Вызов человеком</h3>
66 <h3>Вызов человеком</h3>
67 <p>Причины, по которым применяется данная метода, могут быть разными:</p>
67 <p>Причины, по которым применяется данная метода, могут быть разными:</p>
68 <ul><li>ускорение работы;</li>
68 <ul><li>ускорение работы;</li>
69 <li>необходимость делать исправления и корректировки багов;</li>
69 <li>необходимость делать исправления и корректировки багов;</li>
70 <li>проверка логики без фронтовых докруток.</li>
70 <li>проверка логики без фронтовых докруток.</li>
71 </ul><p>Обычно при наличии рассматриваемой "архитектуры" проще воспользоваться ей, чем GUI. Если обнаружен баг, нужно просто убрать из кода все лишнее, вызвать метод без graphic interface, а затем протестировать логику утилиты.</p>
71 </ul><p>Обычно при наличии рассматриваемой "архитектуры" проще воспользоваться ей, чем GUI. Если обнаружен баг, нужно просто убрать из кода все лишнее, вызвать метод без graphic interface, а затем протестировать логику утилиты.</p>
72 <h3>Автотестинг в помощь</h3>
72 <h3>Автотестинг в помощь</h3>
73 <p>Вот типичная пирамида автоматизации:</p>
73 <p>Вот типичная пирамида автоматизации:</p>
74 <ul><li>GUI-тестинг - направлен на проверку непосредственными пользователями;</li>
74 <ul><li>GUI-тестинг - направлен на проверку непосредственными пользователями;</li>
75 <li>API-тест - планомерное опускание вниз с уборкой "всего лишнего";</li>
75 <li>API-тест - планомерное опускание вниз с уборкой "всего лишнего";</li>
76 <li>Unit-тестинг - проверки на отдельные функции, возможности.</li>
76 <li>Unit-тестинг - проверки на отдельные функции, возможности.</li>
77 </ul><p>В первом случае робот будет делать то, что реализовывал бы обычный пользователь. Пример - открывает браузер, нажимает на кнопки. Но, если подобная проверка провалилась, придется долго искать, в каком именно месте.</p>
77 </ul><p>В первом случае робот будет делать то, что реализовывал бы обычный пользователь. Пример - открывает браузер, нажимает на кнопки. Но, если подобная проверка провалилась, придется долго искать, в каком именно месте.</p>
78 <p>Второй вариант - те же самые манипуляции, но без браузера. Берутся данные на вход, проверяются на выходе. Пример - тестинг грамотности и правильности заполнения данных в Excel.</p>
78 <p>Второй вариант - те же самые манипуляции, но без браузера. Берутся данные на вход, проверяются на выходе. Пример - тестинг грамотности и правильности заполнения данных в Excel.</p>
79 <p>Юнит-тестирование позволяет посмотреть, как работает каждая функция отдельно друг от друга. С их помощью обнаруженные баги легко подкорректировать, потому что становится ясно, что именно и в каком месте "отказало".</p>
79 <p>Юнит-тестирование позволяет посмотреть, как работает каждая функция отдельно друг от друга. С их помощью обнаруженные баги легко подкорректировать, потому что становится ясно, что именно и в каком месте "отказало".</p>
80 <h3>Косвенный вызов</h3>
80 <h3>Косвенный вызов</h3>
81 <p>Предыдущие варианты - это прямое обращение к адресам и информации. Вызвать API-интерфейс удается косвенно. Пример - через GIU. Здесь происходит следующее:</p>
81 <p>Предыдущие варианты - это прямое обращение к адресам и информации. Вызвать API-интерфейс удается косвенно. Пример - через GIU. Здесь происходит следующее:</p>
82 <ol><li>Клиент открывает систему и пытается загрузить отчет.</li>
82 <ol><li>Клиент открывает систему и пытается загрузить отчет.</li>
83 <li>Соответствующая проблема решается путем клика на определенную кнопку.</li>
83 <li>Соответствующая проблема решается путем клика на определенную кнопку.</li>
84 <li>Когда юзер кликает по соответствующему элементу управления, происходит формирование и отправка запроса на сервер.</li>
84 <li>Когда юзер кликает по соответствующему элементу управления, происходит формирование и отправка запроса на сервер.</li>
85 <li>Сервер получат команду, обрабатывает ее.</li>
85 <li>Сервер получат команду, обрабатывает ее.</li>
86 <li>Происходит формирование отчета (ответа) с его непосредственной выдачей в качестве результата.</li>
86 <li>Происходит формирование отчета (ответа) с его непосредственной выдачей в качестве результата.</li>
87 </ol><p>Так клиент может пользоваться разработками API, даже не подозревая об этом.</p>
87 </ol><p>Так клиент может пользоваться разработками API, даже не подозревая об этом.</p>
88 <h2>Тестирование</h2>
88 <h2>Тестирование</h2>
89 <p>Тестирование API - это проверка, которая осуществляется через рассматриваемую архитектуру. Подобный термин выступает в качестве общеупотребимого, но не совсем корректного с технической точки зрения.</p>
89 <p>Тестирование API - это проверка, которая осуществляется через рассматриваемую архитектуру. Подобный термин выступает в качестве общеупотребимого, но не совсем корректного с технической точки зрения.</p>
90 <p>Связано это с тем, что при реализации подобной проверки будет анализироваться конкретная функциональность через программный или графический interface. Термин целесообразно применять, говоря об:</p>
90 <p>Связано это с тем, что при реализации подобной проверки будет анализироваться конкретная функциональность через программный или графический interface. Термин целесообразно применять, говоря об:</p>
91 <ul><li>автотестах на уровне программного интерфейса;</li>
91 <ul><li>автотестах на уровне программного интерфейса;</li>
92 <li>интеграции между несколькими системами.</li>
92 <li>интеграции между несколькими системами.</li>
93 </ul><p>Интеграция - это когда одна система обращается к другой по протоколу передачи данных. Носит название Remote API. Общение осуществляется по некому протоколу посредством интернета. Есть еще LocalAPI - когда приложение обращается само к себе или к другому ПО в пределах одной виртуальной памяти.</p>
93 </ul><p>Интеграция - это когда одна система обращается к другой по протоколу передачи данных. Носит название Remote API. Общение осуществляется по некому протоколу посредством интернета. Есть еще LocalAPI - когда приложение обращается само к себе или к другому ПО в пределах одной виртуальной памяти.</p>
94 <h2>Endpoint - это…</h2>
94 <h2>Endpoint - это…</h2>
95 <p>При проверке любого обеспечения, работающего с сетью, должно быть представление об endpoint. Это - название адреса, который будет принимать сообщения от клиента. Обычно представлен URL и портом. Если хочется создать веб-сервис на порту 8080 Endpoint, он будет иметь следующий вид:</p>
95 <p>При проверке любого обеспечения, работающего с сетью, должно быть представление об endpoint. Это - название адреса, который будет принимать сообщения от клиента. Обычно представлен URL и портом. Если хочется создать веб-сервис на порту 8080 Endpoint, он будет иметь следующий вид:</p>
96 <p>Если у сервиса несколько интерфейсов, предстоит при обращении к оному указать точный Endpoint каждый раз при смене оных.</p>
96 <p>Если у сервиса несколько интерфейсов, предстоит при обращении к оному указать точный Endpoint каждый раз при смене оных.</p>
97 <p>В качестве эндпоинта может восприниматься определенный роутер или компьютер - конечное устройство. Это понятие выходит за пределы Restful. Endpoint может использоваться в SOAP и иных протоколах.</p>
97 <p>В качестве эндпоинта может восприниматься определенный роутер или компьютер - конечное устройство. Это понятие выходит за пределы Restful. Endpoint может использоваться в SOAP и иных протоколах.</p>
98 <h2>REST - что это</h2>
98 <h2>REST - что это</h2>
99 <p>REST - передача состояния представления. Представляет архитектурный стиль взаимодействия элементов распределенной системы в пределах компьютерной сети. Отвечает за определение принципа обмена данными между различными компонентами системы, каждая из которых физически способна располагаться в разных местах в физическом плане.</p>
99 <p>REST - передача состояния представления. Представляет архитектурный стиль взаимодействия элементов распределенной системы в пределах компьютерной сети. Отвечает за определение принципа обмена данными между различными компонентами системы, каждая из которых физически способна располагаться в разных местах в физическом плане.</p>
100 <p>Это - согласованный набор ограничений, принимаемых во внимание при проектировании распределенных систем. Эти "рамки" носят название принципов REST. Приложения, которые соблюдают оные - Restful.</p>
100 <p>Это - согласованный набор ограничений, принимаемых во внимание при проектировании распределенных систем. Эти "рамки" носят название принципов REST. Приложения, которые соблюдают оные - Restful.</p>
101 <p>Для того, чтобы разобраться с архитектурой, необходимо знать:</p>
101 <p>Для того, чтобы разобраться с архитектурой, необходимо знать:</p>
102 <ul><li>основы работы в формате JSON;</li>
102 <ul><li>основы работы в формате JSON;</li>
103 <li>HTML;</li>
103 <li>HTML;</li>
104 <li>HTTP;</li>
104 <li>HTTP;</li>
105 <li>URL;</li>
105 <li>URL;</li>
106 <li>внедрение зависимостей.</li>
106 <li>внедрение зависимостей.</li>
107 </ul><p>Все это пригодится при создании нового приложения, контактирующего с клиентами и серверами.</p>
107 </ul><p>Все это пригодится при создании нового приложения, контактирующего с клиентами и серверами.</p>
108 <h3>Принципы REST</h3>
108 <h3>Принципы REST</h3>
109 <p>Всего их шесть:</p>
109 <p>Всего их шесть:</p>
110 <ol><li>Приход к модели клиент-сервер. Здесь заложены ограничения потребностей. Нужно четко отделять клиентский интерфейс от серверных "интересов", отвечающих за хранение данных. Принцип помогает повысить переносимость кодификации на другие платформы, а также улучшить масштабируемость системы.</li>
110 <ol><li>Приход к модели клиент-сервер. Здесь заложены ограничения потребностей. Нужно четко отделять клиентский интерфейс от серверных "интересов", отвечающих за хранение данных. Принцип помогает повысить переносимость кодификации на другие платформы, а также улучшить масштабируемость системы.</li>
111 <li>Отсутствие состояния. Между запросами серверу не нужно хранить данные о состоянии клиента. Обратное правило тоже действует. Запросы со стороны "пользователя" формируются так, чтобы server мог получить необходимые данные для обработки запроса. Это помогает "не читать между строк" составленной утилите.</li>
111 <li>Отсутствие состояния. Между запросами серверу не нужно хранить данные о состоянии клиента. Обратное правило тоже действует. Запросы со стороны "пользователя" формируются так, чтобы server мог получить необходимые данные для обработки запроса. Это помогает "не читать между строк" составленной утилите.</li>
112 <li>Кэширование. Ответы серверного типа должны быть явными или неявными. Это поможет юзеру не получать устаревшие и неверные сведения. Способствует улучшению производительности.</li>
112 <li>Кэширование. Ответы серверного типа должны быть явными или неявными. Это поможет юзеру не получать устаревшие и неверные сведения. Способствует улучшению производительности.</li>
113 <li>Единообразие интерфейса. Фундаментальный принцип. У архитектуры должен быть единообразный interface. Клиент должен всегда понимать, какие адреса и в каком форме будут получать запрос. Сервер - разбираться в форматах, выдаваемых в качестве ответов.</li>
113 <li>Единообразие интерфейса. Фундаментальный принцип. У архитектуры должен быть единообразный interface. Клиент должен всегда понимать, какие адреса и в каком форме будут получать запрос. Сервер - разбираться в форматах, выдаваемых в качестве ответов.</li>
114 <li>Слои. Подразумевается иерархия сетевых структур. Иногда client может обратиться к серверу напрямую, иногда - через промежуточный узел. Расслаивание системы устранит проблему загрузку servers.</li>
114 <li>Слои. Подразумевается иерархия сетевых структур. Иногда client может обратиться к серверу напрямую, иногда - через промежуточный узел. Расслаивание системы устранит проблему загрузку servers.</li>
115 <li>Код по требованию. Не является обязательным "критерием". Подразумевает, что client сможет расширить функциональность за счет загрузки кодов с серверов под видом апплетов и сценариев.</li>
115 <li>Код по требованию. Не является обязательным "критерием". Подразумевает, что client сможет расширить функциональность за счет загрузки кодов с серверов под видом апплетов и сценариев.</li>
116 </ol><p>Все это должен помнить разработчик веб-утилит и браузеров.</p>
116 </ol><p>Все это должен помнить разработчик веб-утилит и браузеров.</p>
117 <h3>Примеры запросов</h3>
117 <h3>Примеры запросов</h3>
118 <p>А вот так могут выглядеть клиентские запросы:</p>
118 <p>А вот так могут выглядеть клиентские запросы:</p>
119 <p>Ответы на аппаратном уровне включают в себя:</p>
119 <p>Ответы на аппаратном уровне включают в себя:</p>
120 <ul><li>код ответа;</li>
120 <ul><li>код ответа;</li>
121 <li>заголовок;</li>
121 <li>заголовок;</li>
122 <li>тело.</li>
122 <li>тело.</li>
123 </ul><p>Внешне ответ от запроса почти не отличается. Информация нередко возвращается в формате JSON. Пример - на GET-запросы.</p>
123 </ul><p>Внешне ответ от запроса почти не отличается. Информация нередко возвращается в формате JSON. Пример - на GET-запросы.</p>
124 <h2>Что поможет лучше понять API</h2>
124 <h2>Что поможет лучше понять API</h2>
125 <p>Лучше разобраться в серверах, REST, а также API и GUI помогут специализированные дистанционные компьютерные онлайн курсы. Они позволяют:</p>
125 <p>Лучше разобраться в серверах, REST, а также API и GUI помогут специализированные дистанционные компьютерные онлайн курсы. Они позволяют:</p>
126 <ul><li>учиться в удобное время;</li>
126 <ul><li>учиться в удобное время;</li>
127 <li>быстро вникать "с нуля" в программирование и IT-сферу;</li>
127 <li>быстро вникать "с нуля" в программирование и IT-сферу;</li>
128 <li>получать бесценную практику;</li>
128 <li>получать бесценную практику;</li>
129 <li>знакомиться с опытными кураторами-разработчиками;</li>
129 <li>знакомиться с опытными кураторами-разработчиками;</li>
130 <li>осваивать сразу несколько направлений в сжатые сроки - до 12 месяцев.</li>
130 <li>осваивать сразу несколько направлений в сжатые сроки - до 12 месяцев.</li>
131 </ul><p>По окончании курсов выдается сертификат установленного образца, подтверждающий навыки в выбранном направлении.</p>
131 </ul><p>По окончании курсов выдается сертификат установленного образца, подтверждающий навыки в выбранном направлении.</p>
132 <p>Хотите узнать больше об архитектуре ПО? Обратите внимание на<a>подборку курсов по IT-инфраструктуре</a>в Otus!</p>
132 <p>Хотите узнать больше об архитектуре ПО? Обратите внимание на<a>подборку курсов по IT-инфраструктуре</a>в Otus!</p>
133  
133