Se acompanha a área da programação de serviços/aplicações certamente que já ouviu falar no termo “Web Services” e API. Na prática um Web Service/API corresponde a um ou mais métodos que podem ser acedidos ou invocados por outras aplicações (móveis, para desktop ou para a web), utilizando as tradicionais tecnologias e protocolos Web.
Hoje vamos ensinar a criar um WebService tendo como base o modelo de arquitectura REST.
REST – REpresentational State Transfer é um modelo de arquitectura que usa o protocolo HTTP para comunicação. Existem várias representações para apresentar um recurso como por exemplo XML, JSON, sendo que este último é o mais usado.
Relativamente aos métodos HTTP mais usados numa arquitetura REST, destaque para:
- GET
- Acesso apenas de leitura a um recurso
- PUT
- Para criar um novo recurso
- DELETE
- Remover um recurso
- POST
- Actualizar ou criar um novo recurso
Vamos a um exercício…
Para este artigo vamos criar os seguintes quatro métodos:
- listarUsers (GET) – lista de todos os utilizadores
- addUser (PUT) – adicionar utilizador
- deleteUser (DELETE) – apagar utilizador
- :id (POST) – Detalhes de um utilizador
Preparação do projeto
Antes de começarmos a programar os métodos vamos criar a estrutura do nosso projeto. Para isso vamos criar um diretório (servernode) para o projeto e também o ficheiro package.json que terá informações sobre o próprio projeto. A criação do ficheiro package.json pode ser feita facilmente com o comando npm init, bastando para isso responder a algumas questões.
mkdir servernode
cd servernode/
npm init
Depois da criação do ficheiro package.json vamos instalar o módulo Express.js. O Express é uma framework para Node que permite o desenvolvimento de aplicações web de uma forma muito simples. Para instalar o Express basta executar o seguinte comando:
npm install express -S
Método listarUsers
Depois da instalação do módulo com sucesso, vamos então avançar para a criação do método listarUsers. Para isso vamos criar o ficheiro app.js que terá todos os métodos.
touch app.js
Dentro do ficheiro devem introduzir o seguinte código:
var express = require('express');
var app = express();
// Definir a route principal
app.get('/', function(req, res) {
res.send('RESTful API - Pplware');
});
// Lista de Utilizadores
var users = [
{ id: 1, username: 'Pedro Pinto', email: 'ppinto@ppl.com' },
{ id: 2, username: 'Francisco', email: 'francisco@ppl.com' },
{ id: 3, username: 'Carla Figueiredo', email: 'cfig@ppl.com' }
];
// Definir um endpoint da API
app.get('/api/listaUsers', function(req, res, next) {
res.send(users);
})
// Aplicação disponível em http://127.0.0.1:8888/
app.listen(8888);
Agora basta gravar e temos o primeiro método da RESTful API criado. Para executar o código basta executar o seguinte comando:
node app.js
Em seguida basta abrir o browser com o endereço http://localhost:8888/api/listaUsers para aceder ao método criado. O resultado será o seguinte:
Nota: Também podem aceder à route principal, uma vez que está criada. Para isso basta usarem o endereço http://localhost:8888.
Como viram com poucas linhas de código foi possível criar uma RESTful API com servidor Web incluído. Em próximos artigos iremos criar os próximos métodos, e também explorar a questão da segurança dos mesmos. Estejam atentos.