Підручник з RESTful веб-сервісів: приклад REST API

⚡ Розумний підсумок

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

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

Підручник із веб-служб RESTful

Що таке веб-служби Restful?

Спокійні веб -служби — це легкий, простий у обслуговуванні та масштабований сервіс, побудований на архітектурі REST. Веб-сервіс Restful надає API з вашої програми безпечним, уніфікованим та безвідмовним способом клієнту, що його викликає. Клієнт, що викликає, потім може виконувати попередньо визначені операції за допомогою сервісу Restful. Базовим протоколом для REST є HTTP, а REST розшифровується як REpresentational State Transfer (передача репрезентативного стану).

Простіше кажучи, REST визначає стандартний спосіб створення, читання, оновлення та видалення ресурсів, таких як документи, зображення або записи бази даних, через Інтернет. Оскільки він спирається на звичайний HTTP, майже будь-яка мова програмування або пристрій може використовувати RESTful сервіс без спеціальних інструментів.

Чому варто використовувати Restful Web Services?

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

1. Гетерогенні мови та середовища – Це одна з фундаментальних причин, яка така ж, як ми вже бачили для SOAP а.

  • Це дозволяє веб-додаткам, побудованим на різних мовах програмування, взаємодіяти один з одним.
  • За допомогою сервісів Restful ці веб-додатки можуть знаходитися в різних середовищах; деякі з них можуть бути на Windows, а інші можуть бути на Linux.

Зрештою, незалежно від середовища, результат завжди має бути однаковим: програми повинні мати можливість взаємодіяти одна з одною. Restful веб-сервіси пропонують таку гнучкість програмам, побудованим на різних мовах програмування та платформах.

На зображенні нижче наведено приклад веб-застосунку, який вимагає взаємодії з іншими застосунками, такими як Facebook, Twitter та… Google.

Якби клієнтський застосунок мав працювати з такими сайтами, як Facebook та Twitter, розробникам зазвичай потрібно було б знати, на якій мові та платформі створені ці сайти. Виходячи з цього, вони могли б написати код інтерфейсу, але такий підхід міг би виявитися кошмаром для підтримки.

Натомість, Facebook, Twitter та Google розкривають свою функціональність у вигляді веб-сервісів Restful. Це дозволяє будь-якій клієнтській програмі викликати ці веб-сервіси через REST, незалежно від базової технології.

Чому варто використовувати Restful Web Services

2. Подія пристроїв – Зараз над усім треба працювати Mobile пристрої, будь то мобільний телефон, ноутбук чи навіть автомобільна система.

Уявіть собі обсяг зусиль, необхідних для написання коду програм на цих пристроях для взаємодії зі звичайними веб-програмами. Знову ж таки, Restful API спрощують цю роботу, оскільки, як згадувалося в першому пункті, вам насправді не потрібно знати базовий рівень пристрою.

3. Подія Хмари – Усе переходить у хмару. Додатки поступово переміщуються до хмарних систем, таких як Azure or Amazon. Azure та Amazon надають багато API на основі архітектури Restful. Отже, додатки тепер потрібно розробляти таким чином, щоб вони були сумісні з хмарою. Оскільки всі хмарні архітектури працюють за принципом REST, має сенс програмувати веб-сервіси на архітектурі на основі REST, щоб найкраще використовувати хмарні сервіси.

Ключові елементи RESTful

Веб-сервіси REST пройшли довгий шлях з моменту своєї появи. У 2002 році веб-консорціум опублікував визначення веб-сервісів 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. Тіло запиту – Це дані, що надсилаються із запитом. Дані зазвичай надсилаються в тілі запиту, коли до веб-сервісу REST надсилається POST-запит. У 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. GET – Це буде використано для отримання списку всіх співробітників, які використовують веб-сервіс RESTful.
  3. PUT – Це буде використано для оновлення всіх співробітників, які використовують веб-сервіс RESTful.
  4. DELETE – Це буде використано для видалення всіх співробітників, які використовують RESTful-сервіс.

Тепер давайте розглянемо це з точки зору лише одного запису. Припустимо, що є запис про співробітника з номером співробітника 1. Наведені нижче дії матимуть відповідні значення.

  1. POST – Це не застосовується, оскільки ми отримуємо дані співробітника 1, який вже створений.
  2. GET – Це буде використано для отримання інформації про співробітника з номером 1 за допомогою веб-сервісу RESTful.
  3. PUT – Це буде використано для оновлення даних співробітника з номером 1 за допомогою веб-сервісу RESTful.
  4. DELETE – Це використовується для видалення даних працівника з номером 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. Без громадянства

Концепція бездержавності означає, що клієнт повинен забезпечити надання всієї необхідної інформації серверу. Це необхідно для того, щоб сервер міг належним чином обробити відповідь. Сервер не повинен зберігати будь-яку інформацію між запитами від клієнта. Це дуже проста, незалежна послідовність питань і відповідей. Клієнт ставить питання, а сервер відповідає на нього належним чином. Коли клієнт ставить інше питання, сервер не пам'ятає попередній сценарій питань і відповідей і йому потрібно буде самостійно відповісти на нове питання.

  1. Кеш

Принцип кешу RESTFul

Концепція кешу допомагає вирішити проблему бездержавності, описану в останньому пункті. Оскільки кожен запит від сервера до клієнта є незалежним за своєю природою, іноді клієнт може знову запитувати у сервера той самий запит, навіть якщо він уже запитував його раніше. Цей запит надійде на сервер, і сервер надасть відповідь, що збільшує трафік у мережі. Кеш – це концепція, реалізована на клієнті для зберігання запитів, які вже були надіслані на сервер. Отже, якщо клієнт надасть той самий запит, замість того, щоб йти на сервер, він перейде до кешу та отримає необхідну інформацію. Це заощаджує обсяг мережевого трафіку туди-сюди від клієнта до сервера.

  1. Багатошарова система

Концепція багатошарової системи полягає в тому, що будь-який додатковий рівень, такий як рівень проміжного програмного забезпечення, може бути вставлений між клієнтом і фактичним сервером, на якому розміщено веб-сервіс RESTFul. (Рівень проміжного програмного забезпечення – це місце, де створюється вся бізнес-логіка. Це може бути додатковий сервіс, з яким клієнт взаємодіє, перш ніж він здійснить виклик веб-сервісу.) Але впровадження цього рівня має бути прозорим, щоб не порушувати взаємодію між клієнтом і сервером.

  1. Інтерфейс/Уніформа Contract

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

  • POST – Створення ресурсу на сервері.
  • GET – Отримати ресурс із сервера.
  • PUT – Змінити стан ресурсу або оновити його.
  • ВИДАЛИТИ – Видалити або видалити ресурс із сервера.

REST проти SOAP: ключові відмінності

Розробники часто порівнюють REST та SOAP під час проектування веб-сервісу. Обидва дозволяють розподіленим програмам взаємодіяти, але вони суттєво відрізняються за філософією. REST — це архітектурний стиль, який використовує прості HTTP-дієслова та легкі формати, такі як JSON, тоді як SOAP це суворий протокол, який спирається на XML-конверти та формальний конtracт. У таблиці нижче підсумовано найважливіші відмінності.

Аспект REST SOAP
тип Archiтекстурний стиль Суворий протокол
Формат даних JSON, XML, звичайний текст, HTML Тільки XML
Транспорт Лише HTTP HTTP, SMTP, TCP та інші
стан Без громадянства Без громадянства або зі станом
продуктивність Швидший та легший Важче через накладні витрати 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.

Підручник ПідручникName
0 Масиви
1 черги
2 Стеки

У нашому прикладі навчального посібника з REST API ми реалізуємо дієслова Restful, наведені нижче.

  1. ОТРИМАТИ Підручник – Коли клієнт викликає цей Restful API, йому буде надано повний набір навчальних посібників, доступних у веб-сервісі.
  2. GET Підручник/Навчальний посібник – Коли клієнт викликає цей Restful API, йому буде надано назву посібника на основі Tutorialid, надісланого клієнтом.
  3. POST Tutorial/Tutorialname – Коли клієнт викликає цей Restful API, він надсилає запит на вставку назви посібника. Веб-сервіс потім додасть надіслану назву посібника до колекції.
  4. ВИДАЛИТИ підручник/ідентифікатор підручника – Коли клієнт викликає цей Restful API, він надсилає запит на видалення Tutorialname на основі Tutorialid. Веб-сервіс потім видаляє надіслану назву посібника з колекції.

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

Як створити свою першу веб-службу Restful

Крок 1) Створіть новий проект.
Першим кроком є ​​створення порожнього Asp.Net веб-застосунок. У 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 Service (Ajax-enable). Вибір файлу цього типу призведе до того, що Visual Studio додасть базовий код, який допоможе вам створити RESTful веб-сервіс. WCF розшифровується як Windows Комунікація FoundationWCF — це бібліотека для застосунків різних платформ (або однієї й тієї ж платформи) для зв'язку через різні протоколи, такі як TCP, HTTP та HTTPS. Ajax є асинхронним. JavaScript і 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, він поверне відповідну назву посібника на основі ідентифікатора 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, наприклад. Веб-сервіс потім поверне назву посібника з ідентифікатором посібника, що дорівнює 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.

Створіть веб-службу 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

Тепер, коли ми створили весь наш веб-сервіс у розділі вище, давайте подивимося, як ми можемо запустити сервіс Tutorial, щоб його можна було викликати з будь-якого клієнта.

Щоб запустити веб-сервіс, виконайте наведені нижче дії.

Крок 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

Тепер ви побачите вивід «Черг», який відповідає номеру 1 у нашому списку рядків посібника. Це означає, що метод «GetTutorialbyID» тепер викликається з нашого веб-сервісу. Це також показує, що значення 1 успішно передається через браузер до нашого веб-сервісу та до нашого методу, і саме тому ми отримуємо правильне відповідне значення «Черг» у браузері.

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

POST Tutorial/Tutorialname – Коли клієнт викликає цей Restful API, він надсилає запит на вставку Tutorialname. Веб-сервіс потім додасть надіслану назву посібника до колекції.

Запустіть Fiddler інструмент і виконайте наведені нижче кроки.

  1. Перейдіть до розділу редактора запитів. Він використовується для створення запитів, які можна надіслати до будь-якої веб-програми.
  2. Переконайтеся, що тип запиту – «POST» і правильний URL зазнає удару, що в нашому випадку має бути http://localhost:52645/TutorialService.svc/Tutorial.
  3. Переконайтеся, що тип контенту позначено як application/json. Пам’ятайте, що наш метод запиту POST у веб-сервісі приймає лише дані у стилі JSON, тому нам потрібно переконатися, що це вказано, коли ми надсилаємо запит до нашої програми.
  4. Нарешті, нам потрібно ввести наші дані. Пам’ятайте, що наш метод для POST приймає параметр під назвою «str». Отже, тут ми вказуємо, що хочемо додати значення під назвою «Дерева» до нашої колекції назв навчальних посібників і переконатися, що воно позначено тегом до імені змінної «str».

Нарешті, просто натисніть кнопку «Виконати» в FiddlerЦе надішле запит до веб-сервісу на POST-відправку даних «Дерева» до нашого веб-сервісу.

Тестування веб-служби Restful

Тепер, коли ми переглядаємо Підручник URL Щоб показати всі рядки у нашому списку посібника, ви побачите, що значення «Дерева» також присутнє. Це показує, що POST-запит до веб-сервісу було успішно виконано та що його було успішно додано до нашого списку посібника.

Тестування веб-служби Restful

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

ВИДАЛИТИ Посібник/Ідентифікатор посібника – Коли клієнт викликає цей Restful API, він надсилає запит на видалення імені посібника на основі ідентифікатора посібника. Веб-сервіс потім видаляє надіслану назву посібника з колекції.

Запустіть Fiddler інструмент і виконайте наведені нижче кроки.

  1. Перейдіть до розділу редактора запитів. Він використовується для створення запитів, які можна надіслати до будь-якої веб-програми.
  2. Переконайтеся, що тип запиту – «ВИДАЛИТИ» та правильний URL зазнає удару, що в нашому випадку має бути http://localhost:52645/TutorialService.svc/TutorialПереконайтеся, що ідентифікатор, який використовується для видалення рядка у списку, надсилається через URL як параметр. У нашому прикладі REST ми надсилаємо 1, тому це видалить 2nd елемент у нашій колекції, яким є «Черги».

Нарешті, просто натисніть кнопку «Виконати» в FiddlerЦе надішле запит до веб-сервісу на ВИДАЛЕННЯ даних «Черг» з нашого веб-сервісу.

Тестування веб-служби Restful

Тепер, коли ми переглядаємо Підручник URL щоб відобразити всі рядки у нашому списку посібника, ви помітите, що значення «Черги» більше не присутнє.

Це показує, що запит DELETE до веб-сервісу було успішно виконано. Елемент з індексним номером 1 у нашому списку рядків навчального посібника було успішно видалено.

Тестування веб-служби Restful

Найкращі практики RESTful API

Створення працюючого REST API – це лише перший крок; створення такого, що масштабується та залишається зручним у підтримці, вимагає дисципліни. Наведені нижче методи допоможуть зробити ваші кінцеві точки передбачуваними, безпечними та зручними для використання іншими розробниками та агентами штучного інтелекту.

  • Використовуйте іменники, а не дієслова, у URLs. Кінцеві точки, такі як /співробітників/1 чіткіші, ніж /getEmployee?id=1, оскільки дієслово HTTP вже описує дію.
  • Повертати змістовні коди стану. Надсилайте код 200 у разі успішного виконання, 201 у разі створеного ресурсу, 400 у разі невдалого запиту, 401 у разі несанкціонованого доступу, 404 у разі відсутнього ресурсу та 500 у разі помилок сервера.
  • Версія вашого API. Додавання сегмента версії, такого як /v1/ у шляху дозволяє розвивати сервіс, не порушуючи роботу існуючих клієнтів.
  • Захистіть кожну кінцеву точку. Використовуйте HTTPS разом із ключами API або токенами OAuth 2.0 та перевіряйте всі вхідні дані.
  • Підтримка пагінації та фільтрації. Повернення великих колекцій на сторінках забезпечує швидкість відповідей та зменшує навантаження на сервер.

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

Поширені запитання

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.

Підсумуйте цей пост за допомогою: