Представьте, что вы разрабатываете веб-приложение и решили отделить функциональность от представления приложения, поскольку оно предоставляет большую свободу.
Вы создаете API и позволяете другим реализовывать свои собственные внешние интерфейсы. Здесь вы только что внедрили методологию SOA , то есть с помощью веб-сервисов.
Веб-сервисы делают функциональные строительные блоки доступными по стандартным интернет-протоколам независимо от платформ и языков программирования.
Итак, вы разрабатываете механизм обмена между серверной частью (веб-сервисом), которая выполняет обработку и генерацию чего-то полезного, и интерфейсной частью (которая потребляет данные), которая может быть чем угодно. (Веб, мобильное или настольное приложение или другой веб-сервис). Единственным ограничением здесь является то, что внешний и внутренний интерфейсы должны «говорить» на одном и том же «языке».
Вот где вступают SOAP и REST. Это стандартные способы общения с веб-сервисом.
МЫЛО:
SOAP внутренне использует XML для отправки данных туда и обратно. Сообщения SOAP имеют жесткую структуру, и тогда необходимо проанализировать XML-ответ.
WSDL - это спецификация того, какие запросы могут быть сделаны, с какими параметрами и что они будут возвращать. Это полная спецификация вашего API.
ОСТАЛЬНОЕ:
REST - это концепция дизайна.
Всемирная паутина представляет собой крупнейшую реализацию системы, соответствующей архитектурному стилю REST.
Это не так жестко, как SOAP. Веб-службы RESTful используют стандартные URI и методы для вызова веб-службы . Когда вы запрашиваете URI, он возвращает представление объекта, с которым вы затем можете выполнять операции (например, GET, PUT, POST, DELETE). Вы не ограничены выбором XML для представления данных, вы можете выбрать что-нибудь действительно (включая JSON)
REST API от Flickr идет дальше и позволяет вам возвращать изображения.
JSON и XML , функционально эквивалентны и распространены. Существуют также основанные на RPC фреймворки, такие как GRPC на основе Protobufs и Apache Thrift, которые можно использовать для связи между производителями и потребителями API. Наиболее распространенным форматом, используемым веб-API, является JSON, поскольку его легко использовать и анализировать на любом языке.
WSDL : обозначает язык описания веб-сервисов
В SOAP (простой протокол доступа к объектам), когда вы используете веб-службу и добавляете веб-службу в свой проект, ваши клиентские приложения не знают о функциях веб-службы. В настоящее время это как-то старомодно, и для каждого типа клиента вы должны реализовать разные
WSDL
файлы. Например, вы не можете использовать один.Net
и тот же файл дляphp
клиента. ВWSDL
файле есть некоторые описания функций веб-сервиса. Тип этого файлаXML
.SOAP
является альтернативой дляREST
.ОТДЫХ : стенды для представительского государственного трансферта
Это еще один вид API-сервиса, он действительно прост в использовании для клиентов. Им не нужно иметь специальные расширения
WSDL
файлов, такие как файлы. Операция CRUD может быть реализована различнымиHTTP Verbs
способами (GET для чтения, POST для создания, PUT или PATCH для обновления и DELETE для удаления требуемого документа). Они основаны наHTTP
протоколе и в большинстве случаев ответ находится в форматеJSON
илиXML
формате. С другой стороны, клиентское приложение должно точно вызывать связанныеHTTP Verb
через точные имена и типы параметров. Из-за отсутствия специального файла для определения, напримерWSDL
, это ручная работа с использованием конечной точки. Но это не имеет большого значения, потому что теперь у нас есть много плагинов для различных IDE для генерации реализации на стороне клиента.SOA : стенды для сервис-ориентированной архитектуры
Включает в себя все программирование с концепциями и архитектурой веб-сервисов. Представьте, что вы хотите реализовать крупномасштабное приложение. Одной практикой может быть использование нескольких разных сервисов, называемых микросервисами, и весь механизм приложения будет вызывать необходимый веб-сервис в нужное время. Оба
REST
иSOAP
веб-сервисы являются своего родаSOA
.JSON : стоит для
javascript Object Notation
когда вы сериализуете объект для javascript, типом формата объекта является JSON. представьте, что у вас есть человеческий класс:
и у вас есть несколько экземпляров из этого класса:
когда вы сериализуете объект h1 в JSON, результат будет:
javascript
может оценить этот формат поeval()
функции и сделать ассоциативный массив из этойJSON
строки. Эта концепция отличается от других концепций, которые я описал ранее.источник