Arquitetura de Sistemas

Web Services

São APIs que se comunicam por meio de redes através do protocolo HTTP, independente de linguagens, softwares e hardwares.

Inicialmente foram criados para troca de mensagens usando a linguagem XML (Extensible Markup Language) sobre o protocolo HTTP sendo identificado por URI (Uniform Resource Identifier).

Todo web service (usa protocolo HTTP) é uma API, mas nem toda API (pode usar outros protocolos) é um web service.

Vantagens

Tecnologias

Arquiteturas
Linguagens de Marcação

API - Application Programming Interface

É um conjunto de rotinas documentadas e disponibilizadas por uma app para que outras apps possam consumir as funcionalidades.
Uma API pode ser REST, SOAP, etc.

SOAP - Simple Object Access Protocol

É um protocolo baseado em XML para acessar serviços web, principalmente por HTTP, define como os serviços web se comunicam.

Vantagens

XML - Extensible Markup Language

Criada na década de 90 pela W3C.
Facilita a separação de conteúdo de dados.
Não tem limitação de criação de tags.
Linguagem comum para integrações entre apps.

Estrutura SOAP

O "SOAP Message" possui uma estrutura única e fixa.
Imagem da Estrutura de uma Mensagem SOAP
Imagem de um exemplo de Mensagem SOAP

WSDL - Web Service Description Language

Usado para descrever os serviços web, funciona como um contrato do serviço.
A descrição é feito em um documento XML, onde é descrito o serviço, especificações de acesso, operações e métodos.

XSD - XML Schema Definition

É um schema no formato XML usado para definir a estrutura de dados que será validada no XML.
O XSD funciona como uma documentação de como deve ser montado o SOAP Message (XML) que será enviado para o serviço.

REST - Representational State Transfer

A transferência de estado representacional é um estilo de arquitetura de software que foi criado para orientar o projeto e o desenvolvimento da arquitetura para a World Wide Web. REST define um conjunto de restrições de como a arquitetura de um sistema de hipermídia distribuído em escala da Internet, como a Web, deve se comportar.

Não é um protocolo como o SOAP e sempre vai rodar sobre o protocolo HTTP.
Transferência de Estado Representacional de um objeto, como ele está no momento da requisição e não como ele é.
Formatos: JSON, XML, etc.

Vantagens

Estrutura REST

Para que um serviço web, API seja considerada REST ela deve seguir o estilo, a arquitetura, os padrões definidos.
Na arquitetura REST usamos os verbos do HTTP como representação do que deve ser feito, métodos.
HTTP Métodos

JSON - JavaScript Object Notation

Formatação leve usada para troca de mensagens entre sistemas.
Estrutura de chave e valor, e também de listas ordenadas.
Um dos formatos mais usados.
Imagem de um exemplo de Mensagem JSON

HTTP Status Code

Usado pelo servidor para avisar o cliente sobre o estado da operação solicitada.