Учебное пособие по RESTful веб-сервисам: пример REST API

⚡ Умное резюме

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

  • 📊 Основные глаголы: GET, POST, PUT и DELETE напрямую соответствуют операциям чтения, создания, обновления и удаления ресурсов сервера.
  • 🧩 Ключевые элементы: Ресурсы, глаголы запроса, заголовки, тело запроса, тело ответа и коды состояния в совокупности определяют каждое REST-взаимодействие.
  • 🌐 Archiтекстура: REST использует клиент-серверную модель, которая остается без сохранения состояния, имеет многоуровневую структуру и поддерживает кэширование, что обеспечивает более быстрые и надежные повторные запросы.
  • 🇧🇷 Реализация: Использование шаблона службы WCF в ASP.NET позволяет разработчикам создавать RESTful-конечные точки в Visual Studio с минимальной конфигурацией.
  • 🧪 Тестирование: Браузеры обрабатывают GET-запросы, а Fiddler or Postman Отправляйте POST, PUT и DELETE запросы на проверку.
  • 🔐 лучшие практики: HTTPS, аутентификация по токенам, осмысленные коды состояния и версионирование. URLобеспечивает безопасность и удобство сопровождения REST API в производственной среде.
  • 🤖 Интеграция ИИ: OpenAI, антропический и Google Публикуйте REST API, которые обеспечивают работу чат-ботов, автономных агентов и рабочих процессов машинного обучения.

Учебное пособие по веб-службам RESTful

Что такое Restful веб-службы?

Успокаивающие веб-службы REST — это легковесный, поддерживаемый и масштабируемый сервис, построенный на архитектуре REST. RESTful веб-сервис предоставляет API из вашего приложения в безопасном, единообразном и без сохранения состояния режиме для вызывающего клиента. Затем вызывающий клиент может выполнять предопределенные операции, используя RESTful-сервис. Базовым протоколом для REST является HTTP, а REST расшифровывается как REpresentational State Transfer (передача репрезентативного состояния).

Проще говоря, REST определяет стандартный способ создания, чтения, обновления и удаления ресурсов, таких как документы, изображения или записи в базах данных, через Интернет. Поскольку он основан на обычном протоколе HTTP, практически любой язык программирования или устройство могут использовать RESTful-сервис без специальных инструментов.

Почему стоит использовать RESTful веб-сервисы?

Прежде чем углубляться в технические детали, полезно понять, почему REST стал таким популярным. RESTful веб-сервисы получили известность по следующим причинам:

1. Гетерогенные языки и среды – Это одна из основных причин, та же самая, что мы уже видели для SOAP- так же.

  • Это позволяет веб-приложениям, созданным на разных языках программирования, взаимодействовать друг с другом.
  • Благодаря сервисам RESTful эти веб-приложения могут размещаться в различных средах; некоторые из них могут находиться на Windowsи другие могут быть в Linux.

В конечном итоге, независимо от среды, результат всегда должен быть одним и тем же: приложения должны иметь возможность взаимодействовать друг с другом. RESTful веб-сервисы предоставляют эту гибкость приложениям, созданным на различных языках программирования и платформах.

На рисунке ниже приведен пример веб-приложения, которому необходимо взаимодействовать с другими приложениями, такими как Facebook, Twitter и другие. Google.

Если клиентскому приложению необходимо взаимодействовать с такими сайтами, как Facebook и Twitter, разработчикам, как правило, потребуется знать, на каком языке программирования и на какой платформе построены эти сайты. Исходя из этого, они могли бы написать код взаимодействия, но такой подход мог бы оказаться крайне сложным в поддержке.

Вместо этого Facebook, Twitter и Google Они предоставляют доступ к своим функциональным возможностям в виде RESTful веб-сервисов. Это позволяет любому клиентскому приложению вызывать эти веб-сервисы через REST, независимо от используемой технологии.

Почему стоит использовать RESTful веб-сервисы?

2. Событие Устройств – Сейчас все должно работать над собой. Mobile это могут быть мобильные телефоны, ноутбуки или даже автомобильные системы.

Представьте себе, сколько усилий требуется для написания кода приложений для этих устройств, чтобы они взаимодействовали с обычными веб-приложениями. Опять же, RESTful API значительно упрощают эту задачу, поскольку, как упоминалось в первом пункте, вам действительно не нужно знать базовый уровень устройства.

3. Событие «Облачные технологии» – Всё переходит в облако. Приложения постепенно переносятся в облачные системы, такие как… Azure or Amazon. Azure и Amazon Существует множество API, основанных на архитектуре RESTful. Следовательно, приложения теперь необходимо разрабатывать таким образом, чтобы они были совместимы с облаком. Поскольку все облачные архитектуры работают по принципу REST, имеет смысл программировать веб-сервисы на основе архитектуры REST, чтобы максимально эффективно использовать облачные сервисы.

Ключевые элементы RESTful

REST-веб-сервисы прошли долгий путь с момента своего появления. В 2002 году консорциум Web выпустил определение WSDL и SOAP-веб-сервисов. Это заложило основу для реализации веб-сервисов.

В 2004 году веб-консорциум также опубликовал определение дополнительного стандарта под названием RESTful. За последние несколько лет этот стандарт стал довольно популярным и теперь используется многими из самых популярных веб-сайтов по всему миру, включая Facebook и Twitter.

REST — это способ доступа к ресурсам, находящимся в определенной среде. Например, у вас может быть сервер, на котором хранятся важные документы, изображения или видео. Все это примеры ресурсов. Если клиенту, например, веб-браузеру, необходим какой-либо из этих ресурсов, он должен отправить запрос на сервер. REST-сервисы определяют стандартный способ доступа к этим ресурсам.

Ключевые элементы реализации RESTful следующие:

  1. Ресурсы – Первый ключевой элемент – это сам ресурс. Предположим, что веб-приложение на сервере содержит записи о нескольких сотрудниках. Допустим, URL веб-приложение https://demo.guru99.comТеперь, чтобы получить доступ к ресурсу записи о сотруднике через REST-сервисы, можно выполнить команду. https://demo.guru99.com/employee/1Эта команда указывает веб-серверу предоставить данные сотрудника, чей номер равен 1.
  2. Глаголы запроса – Эти параметры описывают, что вы хотите сделать с ресурсом. Браузер отправляет запрос GET, чтобы указать конечной точке, что он хочет получить данные. Однако существует множество других доступных запросов, включая POST, PUT и DELETE. Так, в случае с приведенным примером… https://demo.guru99.com/employee/1На самом деле веб-браузер отправляет запрос GET, поскольку хочет получить подробную информацию о сотруднике.
  3. Заголовки запроса – Это дополнительные инструкции, прилагаемые к запросу. В них может быть указан тип требуемого ответа или сведения об авторизации.
  4. Тело запроса – Это данные, отправляемые вместе с запросом. Обычно данные отправляются в теле запроса при отправке POST-запроса к REST-сервису. В POST-запросе клиент сообщает REST-сервису, что хочет добавить ресурс на сервер. Следовательно, в теле запроса будут содержаться сведения о ресурсе, который необходимо добавить.
  5. Тело ответа – Это основная часть ответа. Итак, в нашем примере с RESTful API, если бы мы отправили запрос на веб-сервер через этот запрос. https://demo.guru99.com/employee/1В этом случае веб-сервер может вернуть XML-документ со всеми данными о сотруднике в теле ответа.
  6. Коды состояния ответа – Это общие коды, возвращаемые вместе с ответом от веб-сервера. Например, код 200 обычно возвращается, когда при отправке ответа клиенту не возникает ошибок.

Успокаивающие методы

На приведенной ниже диаграмме показаны большинство глаголов (POST, GET, PUT и DELETE) и пример REST API, иллюстрирующий их значение.

Предположим, что у нас есть RESTful веб-сервис, определенный по следующему адресу: https://demo.guru99.com/employeeКогда клиент отправляет запрос к этому веб-сервису, он может указать любой из стандартных HTTP-глаголов: GET, POST, DELETE и PUT. Ниже показано, что произойдет, если клиент отправит соответствующие глаголы.

  1. POST – Это будет использоваться для создания нового сотрудника с помощью RESTful веб-сервиса.
  2. ПОЛУЧИТЬ – Это будет использоваться для получения списка всех сотрудников, использующих RESTful веб-сервис.
  3. ПОЛОЖИЛ – Это будет использоваться для обновления информации для всех сотрудников с помощью RESTful веб-сервиса.
  4. УДАЛИТЬ – Это будет использоваться для удаления всех сотрудников с помощью RESTful-сервиса.

Теперь давайте рассмотрим ситуацию с точки зрения одной записи. Допустим, есть запись о сотруднике с номером 1. Следующие действия будут иметь свои соответствующие значения.

  1. POST – Это неприменимо, поскольку мы получаем данные о сотруднике 1, который уже создан.
  2. ПОЛУЧИТЬ – Это будет использоваться для получения сведений о сотруднике с номером 1 с помощью RESTful веб-сервиса.
  3. ПОЛОЖИЛ – Это будет использоваться для обновления данных сотрудника с номером 1 с помощью RESTful веб-сервиса.
  4. УДАЛИТЬ – Эта функция используется для удаления данных сотрудника с номером 1.

Успокаивающие методы

успокоительное Archiтекстура

Приложение или архитектура, считающиеся RESTful или REST-подобными, обладают следующими характеристиками.

1. Состояние и функциональность разделены на распределенные ресурсы. – Это означает, что каждый ресурс должен быть доступен через стандартные HTTP-команды GET, POST, PUT или DELETE. Таким образом, если кто-то хочет получить файл с сервера, он должен иметь возможность отправить GET-запрос и получить файл. Если он хочет разместить файл на сервере, он должен иметь возможность отправить POST- или PUT-запрос. Наконец, если он хочет удалить файл с сервера, он может отправить DELETE-запрос.

2. Архитектура является клиент-серверной, без сохранения состояния, многоуровневой и поддерживает кэширование.

  • Клиент-сервер — это типичная архитектура, в которой сервером может быть веб-сервер, на котором размещено приложение, а клиентом может быть такой же простой веб-браузер.
  • Безгражданство означает, что состояние приложения не сохраняется в REST. Например, если вы удаляете ресурс с сервера с помощью команды DELETE, вы не можете ожидать, что информация об удалении будет передана следующему запросу.

Для того чтобы гарантировать удаление ресурса, необходимо отправить GET-запрос. GET-запрос используется для того, чтобы сначала получить список всех ресурсов на сервере, после чего нужно проверить, был ли ресурс действительно удален.

RESTFul принципы и ограничения

Архитектура REST основана на нескольких характеристиках, которые подробно описаны ниже. Любой веб-сервис RESTful должен соответствовать указанным ниже характеристикам, чтобы называться RESTful. Эти характеристики также известны как принципы проектирования, которым необходимо следовать при работе с сервисами на основе RESTful.

  1. RESTFul клиент-сервер

    Принцип RESTful-клиента-сервера

Это самое фундаментальное требование архитектуры на основе REST. Это означает, что сервер будет иметь RESTful веб-сервис, предоставляющий клиенту необходимую функциональность. Клиент отправляет запрос веб-сервису на сервере. Затем сервер либо отклоняет запрос, либо выполняет его и предоставляет клиенту адекватный ответ.

  1. Stateless

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

  1. Кэш

Принцип RESTful-кэша

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

  1. Многоуровневая система

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

  1. Интерфейс/Единый Конtract

Это базовый принцип работы RESTful веб-сервисов. RESTful, по сути, работает на уровне HTTP-протокола и использует указанные ниже ключевые глаголы для взаимодействия с ресурсами на сервере.

  • POST – Создание ресурса на сервере.
  • GET – Для получения ресурса с сервера.
  • PUT – Изменить состояние ресурса или обновить его.
  • DELETE – Удаление ресурса с сервера.

REST против SOAP: ключевые различия

При проектировании веб-сервисов разработчики часто сравнивают REST и SOAP. Оба метода позволяют распределенным приложениям взаимодействовать, но существенно различаются по своей философии. REST — это архитектурный стиль, использующий простые HTTP-глаголы и легковесные форматы, такие как JSON, в то время как SOAP- Это строгий протокол, основанный на XML-конвертах и ​​формальном протоколе.tracВ таблице ниже приведено краткое описание наиболее важных различий.

Аспект ОТДЫХ SOAP-
Тип Archiтектурный стиль Строгий протокол
Формат данных JSON, XML, простой текст, HTML только XML
Транспорт Только HTTP HTTP, SMTP, TCP и другие
Область Stateless Лица без гражданства или с гражданством
Эффективности Быстрее и легче Более тяжёлый из-за накладных расходов XML.
лучше всего для Веб-, мобильные и общедоступные API Корпоративные приложения, требующие строгой безопасности

На практике REST является выбором по умолчанию для публичных веб- и мобильных API, поскольку он быстрее и проще в использовании, в то время как SOAP остается полезным для корпоративных систем, требующих встроенной безопасности и формального контроля.tracц.

Создайте свой первый веб-сервис Restful в ASP.NET.

В этом уроке по REST API мы научимся создавать RESTful веб-сервис в ASP.NET.

Веб-сервисы можно создавать на разных языках, и для создания REST-сервисов можно использовать множество интегрированных сред разработки.

В этом примере RESTful API мы создадим наше REST-приложение на .NET с помощью Visual Studio. У нас будет RESTful веб-сервис, который будет работать с приведенным ниже набором данных.

Приведённый ниже набор данных представляет собой пример REST API компании, которая предоставляет доступ к своим учебным материалам на основе идентификатора учебного пособия (Tutorialid).

Учебное пособие Название учебника
0 Массивы
1 Очереди
2 Стеки

В нашем примере из учебника по REST API мы реализуем следующие RESTful-глаголы.

  1. ПОЛУЧИТЬ Учебник – При обращении клиента к этому RESTful API ему будет предоставлен полный набор обучающих материалов, доступных в веб-сервисе.
  2. ПОЛУЧИТЬ Учебное пособие/Учебное пособие – При вызове этого RESTful API клиенту будет присвоено имя учебного пособия на основе Tutorialid, отправленного клиентом.
  3. Учебник POST/Название учебника – Когда клиент вызывает этот RESTful API, он отправляет запрос на вставку имени учебного пособия (Tutorialname). Затем веб-сервис добавляет отправленное имя учебного пособия в коллекцию.
  4. УДАЛИТЬ Учебное пособие/Tutorialid – Когда клиент вызывает этот RESTful API, он отправляет запрос на удаление имени учебного пособия на основе идентификатора учебного пособия (Tutorialid). После этого веб-сервис удаляет отправленное имя учебного пособия из коллекции.

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

Как создать свой первый Restful веб-сервис

Шаг 1) Создать новый проект.
Первым шагом является создание пустого Асп.Нет веб-приложение. В Visual Studio 2013 выберите пункт меню Файл -> Новый проект.

Создать Restful веб-сервис

После нажатия на кнопку «Создать проект» Visual Studio откроет диалоговое окно для выбора типа проекта и ввода необходимых данных. Это объясняется на следующем шаге.

Шаг 2) Введите название проекта и его местоположение.

  1. Убедитесь, что вы сначала выбрали C# Шаблон веб-приложения ASP.NET. Проект должен быть именно такого типа, чтобы создать проект веб-сервисов. Выбрав этот вариант, Visual Studio выполнит необходимые шаги для добавления требуемых файлов для любого веб-приложения.
  2. Дайте название своему проекту, в нашем случае это «Webservice.REST».
  3. Затем обязательно укажите место, где будут храниться файлы проекта.

Создать Restful веб-сервис

После завершения процесса вы увидите созданный файл проекта в обозревателе решений Visual Studio 2013.

Создать Restful веб-сервис

Шаг 3) Создайте файл веб-сервиса.
Следующий шаг — создание файла веб-сервиса, который будет содержать RESTful веб-сервис.

  1. Сначала щелкните правой кнопкой мыши по файлу проекта, как показано ниже.

Создать Restful веб-сервис

  1. На этом этапе
    1. Щелкните правой кнопкой мыши файл проекта.
    2. Выберите опцию «Добавить -> Новый элемент».

Создать Restful веб-сервис

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

  1. Выберите опцию «Служба WCF (с поддержкой Ajax)». Выбор файла этого типа заставит Visual Studio добавить некоторый базовый код, который поможет вам создать RESTful веб-сервис. WCF расшифровывается как Windows Коммуникация FoundationWCF — это библиотека для взаимодействия приложений различных платформ (или одной и той же платформы) по различным протоколам, таким как TCP, HTTP и HTTPS. Ajax — это асинхронный метод. JavaСценарий и XML. AJAX позволяет асинхронно обновлять веб-страницы путем фонового обмена небольшими объемами данных с сервером.
  2. Далее, дайте сервису имя, в нашем случае это TutorialService.
  3. Наконец, нажмите кнопку «Добавить», чтобы добавить службу в решение.

Создать Restful веб-сервис

Шаг 4) Сделайте конфигурацию.
Следующий шаг — внесение изменений в конфигурацию, чтобы обеспечить работу проекта с RESTful веб-сервисами. Для этого необходимо изменить файл с именем... web.configЭтот файл отображается в том же окне, что и файл проекта веб-сервиса. Файл Web.config содержит все конфигурации, необходимые для корректной работы веб-приложения. Вносимые изменения позволяют приложению отправлять и получать данные как чисто RESTful веб-сервис.

  1. Чтобы открыть код, щелкните по файлу Web.config.

Создать Restful веб-сервис

  1. Найдите линию .

Создать Restful веб-сервис

  1. Измените строку на .

Создать Restful веб-сервис

Шаг 5) Добавляем наш код для реализации.
Следующий шаг — добавление нашего кода для реализации. Весь приведенный ниже код должен быть написан в файле TutorialService.svc.

  1. Первым делом нужно добавить код для представления наших данных, которые будут использоваться в программе. Таким образом, у нас будет список строковых переменных со значениями «Массивы», «Очереди» и «Стеки». Это будет представлять названия учебных материалов, доступных через наш веб-сервис хостинга.

Создать Restful веб-сервис

namespace Webservice.REST
{
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class TutorialService
{
private static List<String> lst = new List<String>
(new String[] {"Arrays","Queues","Stacks"});

Шаг 6) Определите код для нашего метода GET.
Далее мы определим код для нашего метода GET. Этот код также будет находиться в том же файле TutorialService.svc. Этот код будет выполняться всякий раз, когда мы вызываем сервис из нашего браузера.

Для реализации описанного ниже сценария будет использован следующий метод.

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

Создать Restful веб-сервис

[WebGet(UriTemplate = "/Tutorial")]

public String GetAllTutorial()
{
    int count = lst.Count;
    String TutorialList = "";
    for (int i = 0; i < count; i++)
        TutorialList = TutorialList + lst[i] + ",";
    return TutorialList;
}

Code Объяснение:-

  1. Первая строка кода — самая важная. Она используется для определения того, как мы можем вызвать этот метод. URLИтак, если ссылка на наш веб-сервис выглядит следующим образом: http://localhost:52645/TutorialService.svc и мы добавляем '/Tutorial' к URL, Как в http://localhost:52645/TutorialService.svc/TutorialПриведённый выше код будет вызван. Атрибут 'WebGet' — это параметр, который позволяет сделать этот метод RESTful-методом, чтобы его можно было вызывать с помощью команды GET.
  2. Этот раздел кода используется для просмотра списка строк в переменной lst и возврата всех их вызывающей программе.

Шаг 7) Верните вывод.
Приведённый ниже код гарантирует, что если к сервису Tutorial будет отправлен GET-запрос с идентификатором Tutorial, он вернёт соответствующее название урока на основе этого идентификатора.

Создать Restful веб-сервис

[WebGet(UriTemplate = "/Tutorial/{Tutorialid}")]

public String GetTutorialbyID(String Tutorialid)
{
    int pid;
    Int32.TryParse(Tutorialid, out pid);
    return lst[pid];
}

Code Объяснение:-

  1. Первая строка кода — самая важная. Она определяет, как мы можем вызвать этот метод. URLИтак, если ссылка на наш веб-сервис выглядит следующим образом: http://localhost:52645/TutorialService.svc и мы добавляем '/Tutorial/{Tutorialid}' к URLТаким образом, мы сможем вызвать веб-сервис следующим образом: http://localhost:52645/TutorialService.svc/Tutorial/1Например, веб-сервис вернет название учебного пособия с идентификатором Tutorial, равным 1.
  2. Этот фрагмент кода используется для возврата имени учебного пособия, в котором идентификатор учебного пособия передан в веб-метод.
  • По умолчанию необходимо помнить, что всё, что передаётся в функцию, зависит от того, что именно ей передаётся. URL В браузере это строка.
  • Но нужно помнить, что индекс нашего списка должен быть целым числом, поэтому мы добавляем необходимый код для предварительного преобразования Tutorialid в целое число.
  • Затем мы используем его для доступа к позиции индекса в нашем списке и возвращаем соответствующее значение вызывающей программе.

Шаг 8) Напишите код для метода POST.
Следующий шаг — написание кода для нашего метода POST. Этот метод будет вызываться всякий раз, когда мы захотим добавить строковое значение в наш список учебных пособий с помощью метода POST. Например, если вы хотите добавить учебное пособие с названием «Тестирование программного обеспечения», вам нужно будет использовать метод POST.

Создать Restful веб-сервис

[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "/Tutorial/{str}")]

public void AddTutorial(String str)
{
    lst.Add(str);
}

Code Объяснение:-

  1. Первая строка — это атрибут 'WebInvoke', который добавлен к нашему методу. Это позволяет вызывать метод через POST-запрос. Атрибуты RequestFormat и ResponseFormat должны быть указаны в формате JSON, поскольку при отправке значений в RESTful-сервис значения должны быть именно в этом формате.
  2. Вторая строка кода используется для добавления строкового значения, переданного через POST-запрос, к существующему списку строк из учебного пособия.

Шаг 9) Добавьте метод для обработки операции DELETE.
Наконец, мы добавим наш метод для обработки операции DELETE. Этот метод будет вызываться всякий раз, когда мы захотим удалить существующее строковое значение из нашего списка учебных материалов с помощью метода DELETE.

Создать Restful веб-сервис

[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Json,
UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped)]

public void DeleteTutorial(String Tutorialid)
{
    int pid;
    Int32.TryParse(Tutorialid, out pid);
    lst.RemoveAt(pid);
}

Code Объяснение:-

  1. Первая строка — это атрибут 'WebInvoke', который был добавлен к нашему методу. Это позволяет вызывать метод с помощью вызова DELETE. Атрибуты RequestFormat и ResponseFormat должны быть указаны в формате JSON, поскольку значения должны быть именно в этом формате. Обратите внимание, что параметру Method присваивается значение «DELETE». Это означает, что всякий раз, когда мы используем команду DELETE, будет вызываться этот метод.
  2. Вторая строка кода используется для получения Tutorialid, отправленного с помощью вызова DELETE, и последующего удаления этого идентификатора из нашего списка. ( Int32 Функция в коде используется для преобразования идентификатора учебного пособия из строковой переменной в целое число.

Запуск вашего первого веб-сервиса Restful

Теперь, когда мы создали весь наш веб-сервис в разделе выше, давайте посмотрим, как мы можем запустить сервис «Учебное пособие», чтобы его можно было вызывать из любого клиента.

Для запуска веб-сервиса выполните следующие действия.

Шаг 1) Щелкните правой кнопкой мыши на файле проекта – Webservice.REST.

Запуск Restful веб-сервиса

Шаг 2) Выберите пункт меню «Установить как проект запуска». Это гарантирует, что данный проект будет запускаться при выполнении всего решения в Visual Studio.

Запуск Restful веб-сервиса

Шаг 3) Следующий шаг — запуск самого проекта. В зависимости от установленного в системе браузера, рядом с кнопкой запуска в Visual Studio появится соответствующее название браузера. В нашем случае это: Google Chrome Появление. Просто нажмите на эту кнопку.

Запуск Restful веб-сервиса

Выход:-

После запуска проекта вы можете перейти в раздел TutorialService.svc/Tutorial, и получите результат, показанный ниже.

Запуск Restful веб-сервиса

В приведенном выше выводе,

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

Тестирование вашего первого веб-сервиса Restful

В разделе выше мы уже рассмотрели, как использовать браузер для выполнения запроса 'GET' и вызова приложения 'GetAllTutorial'.

  1. Давайте теперь воспользуемся браузером для выполнения следующего сценария использования.

GET Tutorial/Tutorialid – Когда клиент вызывает этот RESTful API, ему будет присвоено имя учебного пособия на основе Tutorialid, отправленного клиентом.

В браузере добавьте строку /1 после слова Tutorial в URLЕсли вы нажмете кнопку Enter, вы получите результат, показанный ниже.

Тестирование Restful веб-сервиса

Теперь вы увидите вывод "Queues", который соответствует числу 1 в нашем списке строк с учебными материалами. Это означает, что метод 'GetTutorialbyID' теперь вызывается из нашего веб-сервиса. Это также показывает, что значение 1 успешно передается через браузер в наш веб-сервис и в наш метод, и поэтому мы получаем правильное соответствующее значение "Queues" в браузере.

  1. Далее, давайте воспользуемся нашим веб-сервисом, выполнив описанный ниже сценарий. Для этого вам необходимо установить инструмент под названием... FiddlerЭто бесплатный инструмент, который можно скачать.

POST Tutorial/Tutorialname – Когда клиент вызывает этот RESTful API, он отправляет запрос на вставку имени учебного пособия (Tutorialname). Затем веб-сервис добавляет отправленное имя учебного пособия в коллекцию.

Запустите Fiddler Возьмите инструмент и выполните следующие шаги.

  1. Перейдите в раздел «Компоновщик». Он используется для создания запросов, которые можно отправлять в любое веб-приложение.
  2. Убедитесь, что тип запроса — «POST», и что указана правильная информация. URL подвергается удару, что в нашем случае должно быть http://localhost:52645/TutorialService.svc/Tutorial.
  3. Убедитесь, что Content-Type помечен как application/json. Помните, что наш метод POST-запроса в веб-сервисе принимает только данные в формате JSON, поэтому нам необходимо указать это при отправке запроса в наше приложение.
  4. Наконец, нам нужно ввести наши данные. Помните, что наш метод POST принимает параметр с именем 'str'. Таким образом, здесь мы указываем, что хотим добавить значение с именем «Trees» в нашу коллекцию названий учебных пособий и убедиться, что оно привязано к имени переменной 'str'.

Наконец, просто нажмите кнопку «Выполнить» в Fiddler. Это отправит веб-сервису запрос на отправку данных «Деревья» в наш веб-сервис.

Тестирование Restful веб-сервиса

Теперь, когда мы перейдем к руководству, URL Чтобы отобразить все строки из нашего списка учебных материалов, вы увидите, что значение «Trees» также присутствует. Это означает, что POST-запрос к веб-сервису был успешно выполнен и успешно добавлен в наш список учебных материалов.

Тестирование Restful веб-сервиса

  1. Далее, давайте воспользуемся нашим веб-сервисом, выполнив описанный ниже сценарий. Для этого нам также потребуется использовать Fiddler инструмент.

Удаление имени учебного пособия/идентификатора учебного пособия – Когда клиент вызывает этот RESTful API, он отправляет запрос на удаление имени учебного пособия на основе идентификатора учебного пособия. Затем веб-сервис удаляет отправленное имя учебного пособия из коллекции.

Запустите Fiddler Возьмите инструмент и выполните следующие шаги.

  1. Перейдите в раздел «Компоновщик». Он используется для создания запросов, которые можно отправлять в любое веб-приложение.
  2. Убедитесь, что тип запроса — «DELETE», и что указана правильная информация. URL подвергается удару, что в нашем случае должно быть http://localhost:52645/TutorialService.svc/TutorialУбедитесь, что идентификатор, используемый для удаления строки из списка, передается через URL в качестве параметра. В нашем примере REST мы отправляем 1, поэтому это удалит 2.nd элемент нашей коллекции, который называется «Очереди».

Наконец, просто нажмите кнопку «Выполнить» в FiddlerЭто отправит запрос веб-сервису на удаление данных «Очереди» из нашего веб-сервиса.

Тестирование Restful веб-сервиса

Теперь, когда мы перейдем к руководству, URL Чтобы отобразить все строки из нашего списка, представленного в уроке, вы заметите, что значение "Queues" больше не присутствует.

Это показывает, что запрос DELETE к веб-сервису был успешно выполнен. Элемент с индексом 1 в нашем списке строк из учебного пособия был успешно удален.

Тестирование Restful веб-сервиса

RESTful API: лучшие практики

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

  • Используйте существительные, а не глаголы. URLs. Конечные точки, такие как /сотрудники/1 яснее, чем /getEmployee?id=1, потому что HTTP-глагол уже описывает это действие.
  • Возвращать содержательные коды состояния. Отправьте код 200 в случае успеха, 201 — в случае создания ресурса, 400 — в случае некорректного запроса, 401 — в случае несанкционированного доступа, 404 — в случае отсутствия ресурса и 500 — в случае ошибок сервера.
  • Установите версию вашего API. Добавление сегмента версии, например: /v1/ Этот путь позволяет развивать сервис, не нарушая работу существующих клиентов.
  • Обеспечьте безопасность каждой конечной точки. Используйте HTTPS, а также ключи API или токены OAuth 2.0 и проверяйте все входящие данные.
  • Поддерживается пагинация и фильтрация. Возвращение больших коллекций данных на страницах обеспечивает быструю обработку ответов и снижает нагрузку на сервер.

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

Часто задаваемые вопросы (FAQ)

REST — это архитектурный стиль, использующий HTTP-глаголы и легковесные форматы, такие как JSON. SOAP — это строгий протокол, основанный на XML-конвертах. REST быстрее, проще и лучше подходит для веб- и мобильных клиентов, в то время как SOAP подходит для корпоративных систем, нуждающихся во встроенной безопасности.

RESTful API возвращают стандартные коды состояния HTTP. 200 подтверждает успешный запрос, 201 указывает на создание ресурса, 400 сообщает о некорректном запросе, 401 означает несанкционированный доступ, 404 указывает на отсутствие ресурса, а 500 сигнализирует об ошибке сервера во время обработки.

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

Поставщики решений в области ИИ, такие как OpenAI, Anthropic и другие. Google Предоставляются REST-конечные точки, принимающие JSON-запросы и возвращающие сгенерированный текст. Разработчики отправляют POST-запросы с ключами API, а сервис отвечает результатами работы модели, что позволяет создавать чат-боты, агентов и автоматизированные конвейеры.

Да. Современные агенты ИИ используют вызов инструментов или функций для обращения к REST-конечным точкам во время диалога. Агент выбирает конечную точку, формирует полезную нагрузку в формате JSON, отправляет запрос и считывает ответ, чтобы спланировать свои дальнейшие действия без участия человека.

Веб-браузер может напрямую тестировать GET-запросы. Для POST, PUT и DELETE-запросов разработчики используют такие инструменты, как [название инструмента]. Fiddler or Postman, что позволяет задавать заголовки, выбирать глагол и просматривать ответ.

REST-сервисы обычно обмениваются данными в формате JSON, поскольку он легковесный и прост в обработке. Они также могут использовать XML, HTML или обычный текст. Клиент и сервер согласовывают формат с помощью HTTP-заголовков Content-Type и Accept.

Подведем итог этой публикации следующим образом: