Как запустить api приложения
Перейти к содержимому

Как запустить api приложения

  • автор:

API для начинающих: Как использовать API? Полное руководство

API (App Programming Interface) — это интерфейсная программа, которая помогает взаимодействовать с другим программным обеспечением подобно пользовательскому интерфейсу (UI). Он является основной точкой входа для веб-сайта и приложения, включая интеграцию со сторонними разработчиками, облегчая жизнь разработчикам. Эта статья предназначена для тех, кто собирается использовать API в своих проектах. Давайте посмотрим, что такое API?

API предоставляют приложениям возможность взаимодействовать друг с другом. Например, одно приложение может запросить данные у другого приложения и получить их в ответ. Компонент API (Application Program Interface) может разрешать функции одного приложения, а второе приложение может их использовать. Консорциум Всемирной паутины (W3C) определяет API как «набор определений подпрограмм, протоколов и сервисов для создания программных приложений».

Как научиться интеграции API?

API используются в самых разных приложениях, от небольших проектов, например, школьных, до масштабных глобальных сервисов, таких как Google Maps или Facebook. Например, знаменитая кнопка Tweet в Twitter — это API-сервис, который исполняемый код может вызвать и отправить твит от имени пользователя (хотя в последних версиях это изменилось, и большая часть функциональности стала частью страницы).

Всем интересно узнать об особенностях API и их функциональных возможностях. Для лучшего понимания необходимо изучить API с самых основ. Документация по интерфейсу программирования приложения всегда лучше, но если все, что у вас есть, — это веб-сайт W3C API, вы все равно можете многое узнать — и быстро!

W3C имеет точку входа в API, где вы можете найти ссылки на инструменты, ресурсы, примеры и многие другие ценные вещи. Если вы работаете под Windows или Linux, у W3C есть онлайн-инструмент для документирования служб API, который позволяет тестировать API. Есть также инструменты на базе HTML5 и приложения, удобные для мобильных устройств. Помимо W3C, несколько хороших ресурсов есть у Google:

Google предоставляет множество API для доступа к информации из своих служб. Одним из таких API является API Google Maps. Этот инструмент — отличный способ узнать об API, поскольку в нем используются HTML и JavaScript, которые должны быть знакомы каждому, кто разрабатывает веб-приложение для бизнеса.

Различные этапы изучения интеграции API включают в себя:

  • Понять, что делают API
  • Разберитесь в различных типах API
  • Узнайте об API W3C и Google API
  • Определите доступные сервисы, к которым можно получить доступ с помощью API
  • Интегрировать API для создания рабочей системы или программы с вашим кодом и протестировать API
  • Изучить и понять инструменты, язык сценариев, языки программирования, фреймворки и стиль проектирования для интеграции вашей системы с существующей посредством интеграции API
  • Попробуйте реализовать коллекции, необходимые для взаимодействия с сервисом, реализованным через API, и научитесь тестировать коллекции API в своем коде, например, объектную модель JSON или модель A<name>Object и т.д.

Как создать API?

Существует несколько способов создания API. Один из самых простых — использовать онлайн-сервис. Многие онлайн-сервисы позволяют разрабатывать и тестировать интерфейс программирования приложений бесплатно или за небольшую плату. Одним из таких примеров является no-code AppMaster, отличная и очень надежная платформа для создания и реализации API. Спецификация является неотъемлемой частью создания API при его проектировании и документировании. Спецификация расскажет другим разработчикам, как использовать ваш API и что им нужно сделать, чтобы взаимодействовать с ним.

Что мне нужно для начала работы?

Для начала работы с тестовым API вам понадобится несколько предметов:

  • Доменное имя
  • Место для размещения кода, например, GitHub или SourceForge
  • HTTP-сервер, чтобы вы могли запускать свой код локально

На каком языке должен быть написан мой API?

Не существует правил для создания ключа API. Это зависит от ваших потребностей, но некоторые распространенные варианты включают:

  • PHP
  • Java
  • Ruby
  • Net

В чем преимущество создания API?

Создание ключа API позволяет вам сохранять организованность кода и версионировать свою работу. Создайте внутреннее приложение для компании или учреждения. Вы можете использовать его для предоставления услуги, к которой другие сотрудники не смогут получить доступ, пока не получат специальное разрешение на просмотр. Однако создание API-ключа дает много других преимуществ по сравнению с большинством языков программирования.

  • Вы сокращаете количество повторяющегося кода, необходимого для создания вашего приложения
  • Вы можете создать более безопасную пользовательскую среду, поскольку только определенные люди могут получить доступ к данным по своему усмотрению.

API эндпоинты

API эндпоинты — это методы которые представляют собой некий шлюз, который соединяет серверные приложения со встроенным интерфейсом. Простыми словами, это адрес, на который отправляются сообщения. Эти методы могут включать JSON, XML и другие. Каждый URL должен иметь метод, который запрашивается, например GET или POST.

Использование API эндпоинтов

API эндпоинты- это цифровое место, где API получает запрос ресурса. Таким образом, конечная точка — это, по сути, URL (Uniform Resource Locator), который предоставляет информацию о ресурсе. Ниже перечислены некоторые важные моменты, касающиеся характеристик API эндпоинтов.

  • Определите и используйте имя URL эндпоинта
  • Определите и используйте метод HTTP
  • Определите тело запроса и его параметры
  • Определите стратегию аутентификации, если необходимо
  • Для удобства к каждому эндпоинту прикрепляется дополнительный параметр. Точно так же, как при создании функции в других языках программирования, вы должны включить эндпоинты или эти эндпоинты в свой исходный код, поэтому обязательно объявите свои эндпоинты или эти эндпоинты в заголовочном файле в верхней части вашего исходного кода.

Что такое API эндпоинт?

  • Эндпоинт — это компонент API
  • Эндпоинт — это местоположение ресурса
  • API извлекает ресурсы с помощью URL эндпоинта
  • Эндпоинт является одним из концов канала связи

Что такое API для начинающих?

API для начинающих — это набор методов и функций, которые приложение или программа использует для взаимодействия с другим приложением или программой. В компьютерной науке они также известны как «методы».

Пользователи могут использовать API для получения информации от других программ, получения данных и многого другого. Например, в мире iPhone вы можете использовать API, доступный в вашем приложении, для получения данных от другого приложения, например, созданного Facebook, Twitter и т.д., через App Store компании Apple.

Ниже перечислены некоторые из различных типов API:

API на основе XML

Они также известны как API веб-служб и REST API (передача репрезентативного состояния). Единственное различие между API на основе XML и API веб-служб заключается в их синтаксисе. API на основе XML поддерживают все основные веб-браузеры, включая Internet Explorer, Safari, Chrome и Firefox на Windows, OSX и Linux; Internet Explorer 9+ на Windows Phone и другие веб-браузеры. — RESTful API: Это разновидность современного API. Он использует меньшую пропускную способность, чем другие форматы, такие как SOAP. NET.

SOAP APIs

Это более старые типы API для тестирования. Он использует XML, но имеет свой синтаксис. Веб-сервисы загружаются и скачиваются с помощью протокола HTTP. HTTP — один из наиболее часто используемых протоколов в большинстве подключенных к Интернету устройств, от компьютеров до смартфонов.

  • Удаленные вызовы процедур (RPC)
  • Удаленные вызовы процедур используют SOAP поверх HTTP для связи между клиентом и сервером в API-ключе. Это относительно новый способ создания API. Он включает удаленные конечные точки для клиента, чтобы отправлять и получать данные и передавать команды.
  • Обобщенный язык объектного моделирования (GOML): Это более новый формат для создания API, который не сохраняет детали от предыдущих запросов. Вместо этого метод называется функцией в других языках программирования. Единственный недостаток — в нем нет системы событий, но Apple использовала его для создания «swoosh» в iPhone и службы приложений Camera.

Интеграция с API

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

Прежде чем начать интегрировать API-ключ в свой проект, необходимо сделать две вещи:

  1. Узнайте, как использовать и создавать необходимые модели данных.
  2. Узнайте, как работать со всеми различными типами данных.

Как только вы успешно научитесь это делать, следующим шагом будет собственно начало создания приложения для проекта. Вам необходимо продумать, какой тип информации вы хотите собирать и как вы хотите представить ее в API эндпоинтах.

При проектировании вашей системы необходимо продумать, какая информация требуется и какие отношения существуют между ними.

Ниже приведены несколько примеров:

  • Создайте онлайн-систему, которая отслеживает содержимое веб-сайта.
  • На сайте есть несколько статей с названиями и авторами (набор данных).
  • На сайте есть миниатюры для каждой статьи (набор данных).
  • Пользователь выбирает статью на главной странице (команда).

Команда проходит через вашу программу и запрашивает конкретную статью из базы данных.

Легко ли освоить API?

Если вы решили создать приложение, используя в качестве отправной точки API (ключ прикладного программного интерфейса), то да! Каждый день появляются новые приложения. API эндпоинты разрабатываются и создаются с возрастающей сложностью, что делает их простыми в использовании и понимании. Благодаря количеству API на рынке разработчикам легко найти то, что им нужно.

Кроме того, когда вы научитесь использовать API (интерфейс прикладных программ), создание приложения с использованием той же технологии будет очень важным. Разработчик платформы no-code AppMaster является примером такого сервиса для быстрого создания вашего API. API эндпоинты очень важны при изучении API (прикладного программного интерфейса). API эндпоинты многочисленны и разнообразны.

Конечные точки API (эндпоинты) — это важные и ценные методы при интеграции API в проект. При разработке ключа API необходимо продумать различные методы, такие как создание, чтение, обновление и удаление (CRUD), а также параметры. Вы должны описать все эти параметры до начала работы над проектом. Ниже перечислены различные методы, которые вы можете использовать для взаимодействия с конечными точками API (эндпоинтами):

Этот метод используется для получения данных из URL. Он также используется для получения полного содержимого HTML-страницы в API. Например, если вы хотите получить всю информацию об определенном пользователе в API, вы запросите его профиль на сервере. Затем сервер отправит ответ.

Если вы хотите отправить данные на сервер и сохранить их, то этот метод — то, что вам нужно. Он используется для создания новой записи в вашем API. Для этого укажите тип запроса в вашем API (например, запись в блоге).

Этот метод используется для обновления данных в базе данных. В API, если вы хотите изменить информацию в определенной базе данных, вы будете использовать этот метод. Сервер отправит уведомление об успешном обновлении данных.

DELETE

Этот метод удаляет запись из вашей базы данных. Чтобы сделать этот запрос, вам нужно вызвать соответствующий URL в вашей API-программе. Чтобы понять, как эти методы выполняются браузером, необходимо изучить API и конечные точки API (эндпоинты).

Могу ли я создать свой API?

Да, вы можете создать свой API из широкого выбора доступных API, и создать новый очень просто. Вам нужно загрузить код на GitHub или скачать кроссплатформенный SDK и начать разработку API. Также для создания своего API можно воспользоваться помощью известной платформы AppMaster.

Создание пользовательского типа данных или фильтра также возможно, но не обязательно. Если вы хотите работать с уникальным типом данных или функциональностью фильтра, то вам нужен Identity Provider, который будет предоставлять эту функциональность для ваших клиентов при тестировании API (Application Program Interface).

Обучение отнимает много времени, и без соответствующих инструкций или объяснений потребуется время, чтобы понять предмет. Это точно применимо к разработке API; следовательно, лучше проверить, как другие разработчики разработали свои API. Как только вы ознакомитесь с предметом, то с помощью AppMaster вы сможете приступить к созданию своего приложения прикладного программного интерфейса (API) для вашего проекта. Если вы хотите использовать существующий ключ API, то действуйте. Но если вы хотите создать свой собственный и привести его в соответствие со временем, попробуйте использовать AppMaster для разработки приложения для вашего бизнеса.

С помощью API вы можете создать столько приложений, сколько захотите. Кроме того, вы можете начать программировать на любом языке программирования, который отвечает вашим потребностям. Однако, поскольку API строятся совсем иначе, чем другие типы программ, человек с опытом программирования должен начать изучение процесса с нуля. AppMaster значительно облегчает задачу программирования и помогает создать более надежное и креативное приложение для вашего бизнеса.

Существует множество преимуществ, которые мы можем получить от разработки API-ключа. Начнем с того, что ваше приложение станет более привлекательным для ваших пользователей, поскольку оно сможет предоставлять информацию о ресурсах. Кроме того, вы сможете лучше управлять своими данными, потому что приложение может легко получить к ним доступ в любом месте. Вопросы безопасности, связанные с тестированием API (Application Program Interface), также решаются благодаря отсутствию необходимости передавать конфиденциальные данные по сети. Это гарантирует, что никто не получит доступ к тестовому API (Application Program Interface), что впоследствии может привести к проблемам.

Заключительные мысли

API могут быть очень полезны для вашего бизнеса, поскольку они отправляют и получают данные из облака и выступают в качестве ключа. Тестировать API (Application Program Interface) очень удобно, поэтому вы можете с легкостью использовать их для создания приложения. Кроме того, нет необходимости в том, чтобы ваш сервис мобильных приложений соединялся с вашим бэк-эндом, поскольку API (Application Program Interface) сделает это за вас. Если вы хотите создать приложение, собирающее данные, начните изучать возможности разработки и тестирования API (Application Program Interface), предлагаемые AppMaster. AppMaster — это платформа, призванная помочь компаниям создать свой API за несколько минут без какого-либо опыта. Цель платформы — упростить процесс создания и тестирования API в кратчайшие сроки.

Платформа предоставляет все ключевые функциональные возможности для тестирования API и разработки исполнения API. После создания API (прикладного программного интерфейса) вы можете использовать его в качестве отправной точки для создания своих приложений. После этого вы сможете продвигать свои услуги и получать больше клиентов. Посетите AppMaster для получения дополнительной информации о no-code приложениях и разработке API.

Создаем наш первый API при помощи Node.js и Express: Создаем сервер

Создание сервера Express для API при помощи Node.js

В предыдущем руководстве мы рассмотрели, что из себя представляет архитектура REST, шесть основных требований, которые выдвигаются к REST, значение методов запроса HTTP и кодов состояния ответов и структуру конечной точки RESTful API .

В этом руководстве мы создадим сервер, на котором будет располагаться наш API. Вы можете создавать API при помощи любого языка программирования и любого серверного программного обеспечения, однако мы будем использовать платформу Node.js, которая является реализацией JavaScript для стороны сервера, и Express – популярный фреймворк для Node.js с самым необходимым функционалом.

Установка

Для начала нам необходимо убедиться, что Node.js и npm установлены глобально на нашем компьютере. Мы можем это проверить при помощи выполнения команды с флажком -v , в результате чего будут показаны установленные версии этих инструментов. Откройте вашу консоль и введите туда следующую команду:

Версии, установленные на вашем компьютере, могут слегка отличаться от тех, что установлены у меня, однако если оба инструмента имеются, то можем приступить.

Давайте создадим папку проекта под названием express-api и перейдем в нее.

Теперь, когда мы в ней, мы можем инициализировать наш проект, выполнив команду init.

В результате вам будет предложен ряд вопросов о проекте, на которые вы можете как отвечать, так и нет. После настройки у вас будет файл package.json, который выглядит следующим образом:

Теперь, когда у нас есть package.json, мы можем установить зависимости, необходимые для нашего проекта. К счастью, нам нужны только следующие:

  • body-parser – промежуточное ПО для разбора тела запросов;
  • express – веб-фреймворк с самым необходимым функционалом, который мы будем использовать для создания нашего сервера;
  • mysql: драйвер MySQL;
  • request (необязателен) – легкий способ выполнения запросов HTTP;

Мы воспользуемся командой install , за которой будут следовать все зависимости, для завершения настройки нашего проекта.

В результате будут созданы файл package-lock.json, папка node_modules, и package.json теперь будет выглядеть подобно следующему:

Создание сервера HTTP

Перед тем как создать сервер Express, мы быстренько создадим сервер HTTP при помощи встроенного модуля http Node, чтобы вы получили общее представление о том, как работает простенький сервер.

Создайте файл под названием hello-server.js. Загрузите модуль http , установите значение порта (я выбрала 3001 ) и создайте сервер при помощи метода createServer() .

Во вступительном руководстве этой серии мы рассмотрели, какую роль выполняют запросы и ответы для сервера HTTP. Мы настроим наш сервер так, чтобы он мог обрабатывать запрос и отображать его URL-адрес на стороне сервера, а также так, чтобы на стороне клиента отображалось сообщение «Hello, server!».

Наконец, мы укажем серверу, какой порт прослушивать и будем выводить ошибки при их наличии.

Теперь мы можем запустить наш сервер при помощи команды node , за которой следует имя файла.

Вы увидите ответ в консоли.

Для того чтобы проверить, действительно ли запустился сервер, перейдите в вашем браузере по адресу https://localhost:3001/ . Если все нормально, то вы увидите «Hello, server!» на странице. В вашей консоли вы увидите запрошенный URL-адрес.

Если бы вы перешли по адресу http://localhost:3001/hello , то увидели бы URL: /hello .

Также мы можем использовать инструмент cURL на нашем локальном сервере, за счет чего нам будут показаны точные возвращенные заголовки и тело ответа.

Если вы закроете консоль, когда захотите, то сервер прекратит работу.

Теперь, когда мы получили общее представление о том, как работает сервер, запрос и ответ вместе, мы можем переписать этот код для Express, интерфейс которого даже проще и возможности которого более широки.

Создаем сервер Express

Мы создадим новый файл, app.js, который будет выступать в роли точки входа (* файл для запуска приложения) для собственно нашего проекта. Так же как и в случае с оригинальным сервером http, мы запросим модуль и укажем порт для запуска сервера.

Создайте файл app.js и добавьте туда следующий код:

Теперь, вместо того чтобы прослушивать все запросы, мы явно укажем серверу, что нам необходимы только запросы, выполненные по методу GET к корневой папке сервера ( / ). При получении конечной точкой запроса « / » мы отобразим запрошенный URL-адрес и выведем сообщение «Hello, Server!».

Наконец, мы запустим сервер, который будет прослушивать запросы, выполненные по 3002 порту, при помощи метода listen() .

Мы можем запустить сервер при помощи команды node app.js , как и ранее, однако мы можем изменить свойство scripts в файле package.json для автоматического запуска этой конкретной команды.

Теперь мы можем использовать команду npm start для запуска сервера, и после запуска мы увидим сообщение в консоли.

Если мы выполним команду curl -i для обсуждаемого URL-адреса, то увидим, что сервер в этом случае работает на базе Express и что имеются некоторые дополнительные заголовки вроде Content-Type .

Добавляем промежуточное ПО для разбора тела запросов

Для того чтобы облегчить работу с запросами по методам POST и PUT к нашему API, мы добавим промежуточное ПО для разбора тела запроса. Тут нам и пригождается модуль body-parser . За счет этого модуля будет извлечено все тело пришедшего запроса, а его данные преобразованы в JSON-объект, с которым мы можем работать.

Мы просто запросим модуль вверху кода нашего файла. Добавьте следующую инструкцию require в верхнюю часть вашего файла app.js.

Затем мы укажем нашему приложению Express, что необходимо использовать body-parser и преобразовывать данные в формат JSON.

Также давайте изменим наше сообщение таким образом, чтобы вместо простого текста в качестве ответа отправлялся JSON-объект.

Далее приводится код нашего файла app.js, который имеем на данный момент:

Если вы отправите запрос при помощи curl -i на сервер, то увидите, что в заголовке Content-Type теперь указано значение application/json; charset=utf-8 .

Настраиваем маршруты

Пока что у нас имеется только маршрут для обработки запросов по методу GET к корню приложения « / »), однако наш API также должен быть способен обрабатывать запросы HTTP по всем главным методам к различным URL. Мы настроим маршрутизатор (* предоставляет функциональные возможности для обработки ответов) и добавим некоторые выдуманные данные для отправления пользователю.

Давайте создадим новую папку под названием routes и файл под названием routes.js. Мы подключим его вверху app.js.

Обратите внимание на то, что расширение .js в require указывать необязательно. Теперь мы переместим маршрут для обработки запросов GET в routes.js. Добавьте следующий код в routes.js:

Наконец, экспортируйте маршрутизатор, чтобы мы могли им воспользоваться в нашем файле app.js

В app.js замените имеющийся код app.get() вызовом routes() :

Теперь вы могли бы перейти по http://localhost:3002 и увидеть то же, что и ранее. (Не забудьте перезапустить сервер!)

После удачной настройки вышеуказанного мы предоставим некоторые данные в формате JSON при помощи другого маршрута. Пока что мы воспользуемся просто выдуманными данными, поскольку наша база данных еще не создана.

Давайте создадим переменную users в routes.js с некоторыми выдуманными пользовательскими данными в формате JSON.

Мы добавим еще один маршрут для обработки запросов по адресу /users и методу GET в наш маршрутизатор и будем отправлять с его помощью пользовательские данные.

После перезапуска сервера теперь вы можете перейти по http://localhost:3002/users и увидеть все наши данные.

Обратите внимание: если у вас не установлено в браузере расширения для просмотра файлов в формат JSON, то я вам очень рекомендую скачать его, например JSONView для Chrome. Благодаря этому вам будет намного проще читать данные!

Посетите репозиторий GitHub, чтобы ознакомиться с конечным кодом для этого поста и сравните его со своим.

Заключение

В этом руководстве мы рассмотрели, как создать сервер при помощи встроенного модуля Node HTTP и при помощи Express, как назначить маршруты для запросов, выполняемых по различным URL-адресам, и как получать пришедшие в запросах по методу GET данные в формате JSON.

В последнем руководстве этой серии мы подключим наш сервер Express к MySQL для создания, просмотра, обновления и удаления пользователей из нашей базы данных, завершая реализацию функциональных возможностей нашего API.

Web API

Web API представляет способ построения приложения в стиле REST (Representation State Transfer или «передача состояния представления»). REST-архитектура предполагает применение следующих методов или типов запросов HTTP для взаимодействия с сервером:

GET (получение данных)

POST (добавление данных)

PUT (изменение данных)

DELETE (удаление данных)

Для реализации подобной архитектуру фреймворк ASP.NET Core предоставляет ряд встроенных методов, которые как и метод Map() реализованы как методы расширения для типа Microsoft.AspNetCore.Routing.IEndpointRouteBuilder (а соответственно и для типа WebApplication). Эти методы также встраивают в конвейер обработки запроса конечные точки , которые обрабатывают определенные типы запросов:

MapGet (запрос GET)

MapPost (запрос POST)

MapPut (запрос PUT)

MapDelete (запрос DELETE)

Рассмотрим, как мы можем реализовать с помощью этих методов простейший API.

Создание сервера

Вначале определим веб-приложение на ASP.NET Core, которое и будет собственно представлять Web API:

Разберем в общих чертах этот код. Вначале создается список объектов Person — те данные, с которыми будет работать пользователь:

Стоит обратить внимание, что каждый объект Person имеет свойство Id, которое в качестве значения получает Guid — уникальный идентификатор, например «2e752824-1657-4c7f-844b-6ec2e168e99c».

Для упрошения данные определены в виде обычного списка объектов, но в реальной ситуации обычно подобные данные извлекаются из какой-нибудь базы данных.

Далее после создания объекта WebApplication подключаем функциональность статических файлов:

Затем с помощью методов MapGet/MapPost/MapPut/MapDelete определяется набор конечных точек, которые будут обрабатывать разные типы запросов.

Вначале добавляется конечная точка, которая обрабатывает запрос типа GET по маршруту «api/users»:

Запрос GET предполагает получение объектов, и в данном случае отправляем выше определенный список объектов Person.

Когда клиент обращается к приложению для получения одного объекта по id в запрос типа GET по адресу «api/users/«, то срабатывает другая конечная точка:

Здесь через параметр id получаем из пути запроса идентификатор объекта Person и по этому идентификатору ищем нужный объект в списке users. Если объект по Id не был найден, то возвращаем с помощью метода Results.NotFound() статусный код 404 с некоторым сообщением в формате JSON. Если объект найден, то с помощью метода Results.Json() отправляет найденный объект клиенту.

При получении запроса типа DELETE по маршруту «/api/users/» срабатывает другая конечная точка:

Здесь действует аналогичная логика — если объект по Id не найден, отправляет статусный код 404. Если же объект найден, то удаляем его из списка и посылаем клиенту.

При получении запроса с методом POST по адресу «/api/users» срабатывает следующая конечная точка:

Запрос типа POST предполагает передачу приложению отправляемых данных. Причем мы ожидаем, что клиент отправит данные, которые соответствуют определению типа Person. И поэтому инфраструктура ASP.NET Core сможет автоматически собрать из них объект Person. И этот объект мы сможем получить в качестве параметра в обработчике конечной точки.

После получения данных устанавливаем у нового объекта свойство Id, добавляем его в список users и отправляем обратно клиенту.

Если приложению приходит PUT-запрос по адресу «/api/users», то аналогичным образом получаем отправленные клиентом данные в виде объекта Person и пытаемся найти подобный объект в списке users. Если объект не найден, отправляем статусный код 404. Если объект найден, то изменяем его данные и отправляем обратно клиенту:

Таким образом, мы определили простейший API. Теперь добавим код клиента.

Определение клиента

Теперь создадим в проекте новую папку wwwroot , в которую добавим новый файл index.html

Создание клиента javascript для Web API в ASP.NET Core и C#

Определим в файле index.html следующим код для взаимодействия с сервером ASP.NET Core:

Основная логика здесь заключена в коде javascript. При загрузке страницы в браузере получаем все объекты из БД с помощью функции getUsers() :

Для добавления строк в таблицу используется функция row() , которая возвращает строку. В этой строке будут определены ссылки для изменения и удаления пользователя.

Ссылка для изменения пользователя с помощью функции getUser() получает с сервера выделенного пользователя:

И выделенный пользователь добавляется в форму над таблицей. Эта же форма применяется и для добавления объекта. С помощью скрытого поля, которое хранит id пользователя, мы можем узнать, какое действие выполняется — добавление или редактирование. Если id не установлен (равен пустой строке), то выполняется функция createUser, которая отправляет данные в POST-запросе:

Если же ранее пользователь был загружен на форму, и в скрытом поле сохранился его id, то выполняется функция editUser, которая отправляет PUT-запрос:

И функция deleteUser() посылает на сервер запрос типа DELETE на удаление пользователя, и при успешном удалении на сервере удаляет объект по id из списка объектов Person.

Теперь запустим проект, и по умолчанию приложение отправит браузеру веб-страницу index.html , которая загрузит список объектов:

взаимодействие javascript с Web API и MapGet, MapPost, MapPut, MapDelete в ASP.NET Core и C#

После этого мы сможем выполнять все базовые операции с пользователями — получение, добавление, изменение, удаление. Например, добавим нового пользователя:

Создание API¶

Используя Express и Node.js, мы можем реализовать полноценный API в стиле REST для взаимодействия с пользователем. Архитектура REST предполагает применение следующих методов или типов запросов HTTP для взаимодействия с сервером:

  • GET
  • POST
  • PUT
  • DELETE

Зачастую REST-стиль особенно удобен при создании всякого рода Single Page Application, которые нередко используют специальные javascript-фреймворки типа Angular, React или Knockout.

Рассмотрим, как создать свой API. Для нового проекта создадим новую папку, которая пусть будет называться webapp . Сразу определим в проекте файл package.json :

В проекте нам понадобятся express и body-parser для парсинга полученных данных.

Далее перейдем к этому каталогу в командной строке/терминале и для добавления всех нужных пакетов выполним команду:

В данном случае мы создадим экспериментальный проект, который будет хранить данные в файле json и который призван просто показать создание API в Node.js в стиле REST. А пока добавим в папку проекта новый файл users.json со следующим содержанием:

Для чтения и записи в этот файл мы будем использовать встроенный модуль fs . Для обработки запросов определим в проекте следующий файл app.js :

Для обработки запросов определено пять методов для каждого типа запросов: app.get() / app.post() / app.delete() / app.put()

Когда приложение получает запрос типа GET по адресу api/users , то срабатывает следующий метод:

В качестве результата обработки мы должны отправить массив пользователей, которые считываем из файла. Для упрощения кода приложения в рамках данного экспериментального проекта для чтения/записи файла применяются синхронные методы fs.readFileSync() / fs.writeFileSync() . Но в реальности, как правило, работа с данными будет идти через базу данных, а далее мы все это рассмотрим на примере MongoDB.

И чтобы получить данные из файла с помощью метода fs.readFileSync() считываем данные в строку, которую парсим в массив объектов с помощью функции JSON.parse() . И в конце полученные данные отправляем клиенту методом res.send() .

Аналогично работает другой метод app.get() , который срабатывает, когда в адресе указан id пользователя:

Единственное, что в этом случае нам надо найти нужного пользователя по id в массиве, а если он не был найден, возвратить статусный код 404 : res.status(404).send() .

При получении запроса методом POST нам надо применить парсер jsonParser для извлечения данных из запроса:

После получения данных нам надо создать новый объект и добавить его в массив объектов. Для этого считываем данные из файла, добавляем в массив новый объект и перезаписываем файл с обновленными данными.

При удалении производим похожие действия, только теперь извлекаем из массива удаляемый объект и опять же перезаписываем файл:

Если объект не найден, возвращаем статусный код 404 .

Если приложению приходит PUT-запрос, то он обрабатывается методом app.put() , в котором с помощью jsonParser получаем измененные данные:

Здесь также для поиска изменяемого объекта считываем данные из файла, находим изменяемого пользователя по id , изменяем у него свойства и сохраняем обновленные данные в файл.

Таким образом, мы определили простейший API. Теперь добавим код клиента. Итак, как установлено в коде, Express для хранения статических файлов использует папку public , поэтому создадим в проекте подобную папку. В этой папке определим новый файл index.html , который будет выполнять роль клиента. В итоге весь проект будет выглядеть следующим образом:

5.9.png

Далее определим в файле index.html следующий код:

Основная логика здесь заключена в коде javascript. Для упрощения взаимодействия с сервером здесь применяется библиотека jquery. При загрузке страницы в браузере получаем все объекты из БД с помощью функции GetUsers :

Для добавления строк в таблицу используется функция row() , которая возвращает строку. В этой строке будут определены ссылки для изменения и удаления пользователя.

Ссылка для изменения пользователя с помощью функции GetUser() получает с сервера выделенного пользователя:

И выделенный пользователь добавляется в форму над таблицей. Эта же форма применяется и для добавления объекта. С помощью скрытого поля, которое хранит id пользователя, мы можем узнать, какое действие выполняется — добавление или редактирование. Если id равен 0 , то выполняется функция CreateUser , которая отправляет данные в POST-запросе:

Если же ранее пользователь был загружен на форму, и в скрытом поле сохранился его id , то выполняется функция EditUser , которая отправляет PUT-запрос:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *