Ir para o conteúdo

CCT-UFCA/Ciência da Computação/Sistemas Distribuídos/Serviços Web

De Wikiversidade

Conceito de Serviços Web

[editar | editar código]

Um serviço web é um componente de software que está disponível na internet ou em redes privadas e pode ser acessado por outras aplicações utilizando protocolos padronizados. Ele facilita a comunicação entre sistemas de diferentes plataformas ou linguagens.

  • Características:
    1. Interoperabilidade: Permite integração entre sistemas heterogêneos.
    2. Baseado em Protocolos: Usa protocolos bem definidos como HTTP, SOAP e REST.
    3. Reusabilidade: Pode ser utilizado por várias aplicações, promovendo modularidade.
    4. Estandarização: Baseia-se em padrões, garantindo consistência na integração.
Exemplo: Um serviço web de previsão meteorológica acessível por várias aplicações, como aplicativos móveis e sistemas de monitoramento.

Protocolos e Padrões de Serviços Web

[editar | editar código]
  • HTTP (Hypertext Transfer Protocol):
    • Como funciona:
      • É o protocolo base para comunicação na web, permitindo o envio e recebimento de dados entre clientes e servidores.
    • Características:
      • Simplicidade e ubiquidade.
      • Suporte a métodos como GET, POST, PUT, DELETE.
Exemplo: Em APIs REST, o método GET pode ser usado para buscar informações de um servidor.
  • SOAP (Simple Object Access Protocol):
    • Como funciona:
      • Protocolo para troca de informações estruturadas em formato XML. É usado em serviços web baseados em padrões mais antigos.
    • Características:
      • Orientado a mensagens.
      • Complexidade maior devido ao uso de XML e WSDL (Web Services Description Language).
Exemplo: Um sistema bancário que usa SOAP para garantir comunicação segura entre diferentes partes.
  • REST (Representational State Transfer):
    • Como funciona:
      • Arquitetura que explora o HTTP de forma simples e escalável para troca de dados. É amplamente usado por serviços modernos.
    • Características:
      • Baseado em recursos (cada URL representa um recurso).
      • Usa JSON ou XML para troca de informações.
Exemplo: Uma API REST de e-commerce onde GET /products retorna uma lista de produtos.

Implementação de Serviços Web

[editar | editar código]
  • Passos Gerais:
    1. Definir a funcionalidade: Estabelecer o propósito do serviço (ex.: calcular impostos, buscar dados).
    2. Escolher a arquitetura: Decidir entre SOAP e REST, dependendo das necessidades.
    3. Implementação do servidor: Criar a lógica e endpoints para o serviço.
    4. Implementação do cliente: Desenvolver a aplicação que consome o serviço
Servidor:
const express = require('express');
const app = express();

app.use(express.json());

// Endpoint para buscar produtos
app.get('/products', (req, res) => {
    const products = [
        { id: 1, name: 'Product A', price: 100 },
        { id: 2, name: 'Product B', price: 200 },
    ];
    res.json(products);
});

app.listen(3000, () => {
    console.log('Servidor REST rodando na porta 3000');
});
Cliente:
const axios = require('axios');

axios.get('http://localhost:3000/products')
    .then(response => {
        console.log('Produtos:', response.data);
    })
    .catch(error => {
        console.error('Erro ao buscar produtos:', error);
    });

APIs e Microsserviços

[editar | editar código]
  • APIs (Application Programming Interface):
    • Definição:
      • São interfaces que permitem que aplicações se comuniquem com serviços web. São amplamente baseadas em padrões REST ou SOAP.
    • Características:
      • Definem como acessar funcionalidades e recursos.
      • Facilitam reusabilidade e modularidade.
Exemplo: Uma API de geolocalização que fornece dados de latitude e longitude.
  • Microsserviços:
    • Definição:
      • Arquitetura onde sistemas são divididos em pequenos serviços independentes, cada um responsável por uma funcionalidade específica.
    • Vantagens:
      • Escalabilidade: Cada microsserviço pode ser escalado individualmente.
      • Independência: Alterações em um microsserviço não afetam os outros.
Exemplo: Um sistema de e-commerce onde há microsserviços separados para produtos, pedidos e pagamentos.

Referências

[editar | editar código]
  1. https://carreiraemti.com.br/glossary/servicos-web/
  2. https://www.redhat.com/pt-br/topics/integration/whats-the-difference-between-soap-rest
  3. https://kinsta.com/pt/blog/microservicos-vs-api/