Что такое RESTful-программирование? - PullRequest
3848 голосов
/ 22 марта 2009

Что такое RESTful-программирование?

Ответы [ 32 ]

11 голосов
/ 15 сентября 2017

REST - это архитектурный стиль, основанный на веб-стандартах и ​​протоколе HTTP (представлен в 2000 году).

В архитектуре на основе REST все является ресурсом (пользователи, заказы, комментарии). Доступ к ресурсу осуществляется через общий интерфейс на основе стандартных методов HTTP (GET, PUT, PATCH, DELETE и т. Д.).

В архитектуре на основе REST у вас есть сервер REST, который обеспечивает доступ к ресурсам. Клиент REST может получить доступ и изменить REST ресурсы.

Каждый ресурс должен поддерживать обычные операции HTTP. Ресурсы идентифицируются глобальными идентификаторами (которые обычно являются URI).

REST позволяет ресурсам иметь разные представления, например текст, XML, JSON и т. Д. Клиент REST может запрашивать конкретное представление через протокол HTTP (согласование содержимого).

Методы HTTP:

Методы PUT, GET, POST и DELETE обычно используются в архитектурах на основе REST. Следующая таблица дает объяснение этих операций.

  • GET определяет доступ для чтения ресурса без побочных эффектов. Ресурс никогда не изменяется с помощью запроса GET, например, запрос не имеет побочных эффектов (идемпотент).
  • PUT создает новый ресурс. Он также должен быть идемпотентом.
  • DELETE удаляет ресурсы. Операции идемпотентны. Они могут повторяться, не приводя к разным результатам.
  • POST обновляет существующий ресурс или создает новый ресурс.
11 голосов
/ 03 июня 2016

REST === HTTP-аналог не верен до тех пор, пока вы не подчеркнете тот факт, что он «ДОЛЖЕН» управляться HATEOAS .

Рой сам это очистил здесь .

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

[Ошибка здесь означает, что внешняя информация управляет взаимодействием, а не гипертекстом.]

11 голосов
/ 03 октября 2017

REST определяет 6 архитектурных ограничений, которые делают любой веб-сервис - истинный RESTful API .

  1. Единый интерфейс
  2. Клиент-сервер
  3. Без гражданства
  4. Кэшируется
  5. Многоуровневая система
  6. Код по запросу (необязательно)

https://restfulapi.net/rest-architectural-constraints/

10 голосов
/ 06 декабря 2014

Разговор - это больше, чем просто обмен информацией . Протокол на самом деле разработан таким образом, чтобы не было разговоров. Каждая сторона знает, какова их конкретная работа, потому что это указано в протоколе. Протоколы позволяют осуществлять чистый обмен информацией за счет каких-либо изменений возможных действий. Разговор, с другой стороны, позволяет одной стороне спросить, какие дальнейшие действия могут быть предприняты другой стороной. Они могут даже задать один и тот же вопрос дважды и получить два разных ответа, поскольку за это время состояние другой стороны могло измениться. Говоря - это ОТЛИЧНАЯ архитектура . Тезис Филдинга определяет архитектуру, которой нужно было бы следовать, если бы вы хотели, чтобы машины общались друг с другом, а не просто общались .

10 голосов
/ 10 ноября 2014

REST расшифровывается как Представительный государственный перевод .

Он опирается на клиент-серверный, кешируемый протокол связи без сохранения состояния - и практически во всех случаях используется протокол HTTP.

REST часто используется в мобильных приложениях, веб-сайтах социальных сетей, инструментах гибридов и автоматизированных бизнес-процессах. Стиль REST подчеркивает, что взаимодействие между клиентами и сервисами улучшается благодаря ограниченному количеству операций (глаголов). Гибкость обеспечивается назначением ресурсам (существительным) их собственных уникальных универсальных индикаторов ресурсов (URI).

Введение об отдыхе

10 голосов
/ 24 августа 2016

Само по себе понятие "программирование RESTful" отсутствует. Это лучше назвать RESTful-парадигмой или даже лучше RESTful-архитектурой. Это не язык программирования. Это парадигма.

Из Википедии :

В вычислениях передача состояния представления (REST) ​​является архитектурный стиль, используемый для веб-разработки.

9 голосов
/ 02 февраля 2012

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

При правильно реализованной операции GET restful не должно иметь значения, поступает ли информация из БД вашего сервера, из кэша вашего сервера, из CDN, из кэша прокси, из кэша вашего браузера или из локального хранилища вашего браузера. Можно использовать самый быстрый, самый доступный на сегодняшний день источник.

Утверждение, что Rest - это всего лишь синтаксическое изменение от использования запросов GET с параметром action к использованию доступных http-глаголов, делает его бесполезным и чисто косметическим. Суть в том, чтобы использовать язык, который может быть понят и оптимизирован каждой частью цепочки. Если ваша операция GET имеет действие с побочными эффектами, вам придется пропустить все HTTP-кэширование, иначе вы получите противоречивые результаты.

5 голосов
/ 29 августа 2017

Это очень редко упоминается повсюду, но модель зрелости Ричардсона является одним из лучших способов на самом деле судить, насколько Restful является чьим-то API. Подробнее об этом здесь:

Модель зрелости Ричардсона

5 голосов
/ 01 августа 2016

Что такое Тестирование API ?

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

REST API

REST: представительский государственный трансферт.

  • Это набор функций, по которым тестировщики выполняют запросы и получают ответы. В REST API взаимодействие осуществляется по протоколу HTTP.
  • REST также разрешает связь между компьютерами друг с другом по сети.
  • Для отправки и получения сообщений он использует методы HTTP и не требует строгого определения сообщения в отличие от веб-служб.
  • Сообщения REST часто принимают форму в форме XML или JavaScript Object Notation (JSON).

4 Обычно используемые методы API: -

  1. GET: - Предоставляет доступ только для чтения к ресурсу.
  2. POST: - используется для создания или обновления нового ресурса.
  3. PUT: - используется для обновления или замены существующего ресурса или создания нового ресурса.
  4. DELETE: - используется для удаления ресурса.

Шаги для тестирования API вручную: -

Чтобы использовать API вручную, мы можем использовать браузерные плагины REST API.

  1. Установить плагин POSTMAN (Chrome) / REST (Firefox)
  2. Введите URL API
  3. Выберите метод REST
  4. Выберите заголовок содержимого
  5. Введите запрос JSON (POST)
  6. Нажмите на кнопку отправки
  7. Возвращает ответную реакцию

Шаги по автоматизации REST API

2 голосов
/ 27 марта 2019

Я бы сказал, что важный строительный блок в понимании REST лежит в конечных точках или отображениях, таких как /customers/{id}/balance.

Вы можете представить себе такую ​​конечную точку, как соединительный конвейер от веб-сайта (внешний интерфейс) к вашей базе данных / серверу (внутренний интерфейс). Используя их, клиентский интерфейс может выполнять серверные операции, которые определены в соответствующих методах любого отображения REST в вашем приложении.

...