2014-10-06 4 views

ответ

2

Просто обзор, REST имеет определенные свойства, которые разработчик должен следовать для того, чтобы сделать его RESTful:

Что такое REST?

Согласно Википедии:

ОТДЫХА архитектурный стиль описывает следующие шесть ограничений применительно к архитектуре, оставляя реализацию отдельных компонентов свободных дизайн:

  • Client -сервер: Серверы не связаны с пользовательским интерфейсом или пользовательским состоянием, поэтому серверы могут быть более простыми и масштабируемыми.
  • Без гражданства: Связь между клиентом и сервером дополнительно ограничена отсутствием клиентского контекста на сервере между запросами.
  • Cacheable: Ответы должны, неявно или явно, определять себя как кэшируемые или нет, чтобы предотвратить повторное использование клиентами устаревших или несоответствующих данных в ответ на дальнейшие запросы.
  • Многоуровневая система: Клиент не может обычно указывать, подключен ли он непосредственно к конечному серверу или к посреднику на этом пути. Промежуточные серверы могут улучшить масштабируемость системы за счет включения балансировки нагрузки и предоставления общих кэшей.
  • Код по запросу (необязательно): Серверы могут временно расширять или настраивать функциональные возможности клиента путем передачи исполняемого кода.
  • Единый интерфейс: Единый интерфейс между клиентами и серверами, рассмотренный ниже, упрощает и отделяет архитектуру, которая позволяет каждой части развиваться независимо. (Т.е. HTTP GET, POST, PUT, PATCH, DELETE)

Имеет ли API эти характеристики?

Итак, со всем этим сказанным, глядя на оглавление документов API Github, с которыми вы связаны, я вижу, «глаголы», которые удовлетворяют единому требованию к интерфейсу, «конечная точка», его обслуживают более api.github.com, что означает его многоуровневую систему, он предлагает некоторые обратные вызовы json-p, которые удовлетворяли бы части «кода по требованию», перед использованием любых глаголов существует механизм аутентификации, поэтому он не имеет состояния, он предположительно кэшируемый, поскольку это типично для этого тип архитектуры, и при всем этом у вас уже есть большинство характеристик REST API.

Да. его RESTful достаточно, который будет называться REST API.

+0

Выполняет ли это ограничение гипермедиа? –

+0

@JonathanW Я был бы удивлен, если бы это произошло, потому что по какой-то причине, как сказал Apigee в своих обсуждениях HATEOAS, API часто игнорируют это ограничение полностью и часто неправильно понимаются. Тем не менее, можно утверждать, что раздел перенаправления HTTP-сервера github намекает на API, который может обслуживать альтернативные функциональные конечные точки в обмен на другие, что на самом деле не удовлетворяет духу ограничения, но все же не является ничем. – Kristian

+0

Мне было любопытно и посмотрел. Они действительно предоставляют ссылки, но не через официальный тип СМИ. –

-1

Я думаю, что это RESTful стиль.
Но почему github использует первый стиль?

Возможно, RESTful не является стандартом.

+1

Как выглядит URL-адрес, имеет мало общего с тем, можно ли считать api спокойным. –