Что такое REST API в C#

REST (Representational State Transfer) — это архитектурный стиль, который используется для проектирования веб-сервисов. REST API (Application Programming Interface) — интерфейс, работающий по принципам REST, позволяющий взаимодействовать с удаленными сервисами через HTTP.

Основные принципы REST

REST основывается на нескольких ключевых принципах:

  • Клиент-серверная архитектура — клиент и сервер разделены, что позволяет изменять их независимо.
  • Отсутствие состояния (stateless) — каждый запрос от клиента должен содержать всю необходимую информацию, сервер не хранит состояние клиента между запросами.
  • Кеширование — сервер может указывать, какие ответы можно кэшировать, что снижает нагрузку.
  • Единообразие интерфейса — использование стандартных методов HTTP (GET, POST, PUT, DELETE) и ресурсов, идентифицируемых через URL.
  • Многоуровневая система — REST API может использовать прокси-серверы, балансировщики нагрузки и другие уровни для повышения масштабируемости.

HTTP-методы в REST API

В REST API используются стандартные методы HTTP:

  • GET — получение данных
  • POST — создание ресурса
  • PUT — обновление ресурса
  • DELETE — удаление ресурса

Пример запроса на получение данных:

GET /api/products/1 HTTP/1.1
Host: example.com

Пример REST API на C#

Создание REST API с использованием ASP.NET Core:

using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/products")]
public class ProductsController : ControllerBase
{
    [HttpGet("{id}")]
    public IActionResult GetProduct(int id)
    {
        var product = new { Id = id, Name = "Продукт" };
        return Ok(product);
    }
}

Этот контроллер предоставляет метод GET /api/products/{id}, который возвращает данные о продукте в формате JSON.

Форматы данных в REST API

Чаще всего REST API использует JSON или XML для передачи данных. JSON является более популярным из-за компактности и удобства работы.

Пример ответа в формате JSON:

{
  "id": 1,
  "name": "Продукт"
}

Аутентификация и безопасность

Для защиты REST API применяются:

  • JWT (JSON Web Token) — токены, используемые для аутентификации.
  • OAuth 2.0 — стандарт для авторизации API.
  • API-ключи — уникальные ключи, предоставляющие доступ к API.
  • HTTPS — шифрование передаваемых данных.