Webservices

Что такое веб-сервисы

В широком смысле слова Web сервис это метод которые два приложения используют для коммуникации через Интернет.

Это может быть взаимодействие между приложениями на смартфоне, между компьютерами или другими устройствами. Чаще всего подразумевается взаимодействие по протоколу HTTP.

Другое популярный термин близкий по значению к Web сервисам это API но Application Programming Interface - это более широкое понятие, не обязательно связанное с web.

Вебсервисы применяются там где невозможна непосредственная интеграция.

Пример №1: Если Вы хотите разместить на своём сайте яндекс-карты Вам не нужно устанавливать программы от Яндекса, достаточно послать несколько запросов и Яндекс передаст необходимую информацию. Это возможно потому, что программисты разработали специальный набор запросов которые можно присылать к ним на сервер чтобы получить в ответ карту.

Пример №2: Возможна ситуация, когда сайт, написанный на PHP хочет использовать функционал сайта, написанного на .NET. Им нужно как-то обмениваться сообщениями, потому-то .NET не будет понимать команды PHP и наоборот.

Чтобы обойти эту проблему программисты договорились использовать специальные сообщения, которые не зависят от языка программирования и основаны на HTTP протоколе (потому что обмен данными через Web идёт по HTTP).

Формат этих сообщений это либо JSON либо XML. О них мы поговорим позже.

Повторим для закрепления сути: Смысл в том, что сайт, написанный на PHP не посылает своему партнёру никаких PHP команд, на заранее обговорённый адрес посылается сообщение в понятном формате.

Адрес, на который посылаются сообщения называется Endpoint. Обычно это URL (например, название сайта) и порт. Если я хочу создать веб сервис на порту 8080 Endpoint будет выглядеть так:

http://andreyolegovich.ru:8080

Если моему Web сервису нужно будет отвечать на различные сообщения я создам сразу несколько URL (interfaces) по которым к сервису можно будет обратиться. Например

http://andreyolegovich.ru:8080 /resource1/status
http://andreyolegovich.ru:8080 /resource1/getserviceInfo
http://andreyolegovich.ru:8080 /resource1/putID
http://andreyolegovich.ru:8080 /resource1/eventslist
http://andreyolegovich.ru:8080 /resource2/putID
...

Как видите у моих Enpoints различные окончания. Такое окончание в Endpoint называются Resource, а начало Base URL.

Endpoint = Base URL + Resource

После того все эти интерфейсы созданы, их необходимо описать. Нужен документ из которого будет понятно

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

Вернёмся к первому пункту списка, а именно к тому, что такое методы.

В протоколе HTTP предусмотрено несколько способов отправить запрос на один и тот же Endpoint. Они называются CONNECT, DELET, GET, HEAD, OPTIONS, PATCH, POST, PUT, TRACE про их свойства можно почитать здесь.

Когда мы знаем какие методы с какими Enpoint можно использовать составить запросы не составит труда. Например:

GET http://andreyolegovich.ru:8080 /resource1/status
GET http://andreyolegovich.ru:8080 /resource1/getserviceInfo
PUT http://andreyolegovich.ru:8080 /resource1/putID
GET http://andreyolegovich.ru:8080 /resource1/eventslist
POSThttp://andreyolegovich.ru:8080 /resource1/eventslist
PUT http://andreyolegovich.ru:8080 /resource2/putID
...

Итак, простейший запрос состоит из метода и Enpoint

Request = Method + Endpoint



Calculator. Http methods. Protocols/rfc2616.

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: