Skip to content

APIs REST simulando loja virtual para servir de estudo de testes de API de forma manual ou automatizada

Notifications You must be signed in to change notification settings

ServeRest/ServeRest

Repository files navigation

ServeRest

Servidor REST para estudo de testes de API

serverest version Docker Pulls Sonar code coverage score serverest total downloads

Código de conduta | Como contribuir | Histórico de alterações | Doadores

Logo do ServeRest

ServeRest permite o estudo de:

  • Verbos GET, POST, PUT e DELETE com persistência de dados
  • Teste de carga
  • Autenticação no header
  • Query string
  • Teste de schema json

Ambientes disponíveis

Online em serverest.dev
Texto serverest.dev
Local com NPM

Logo do NPM
Local com docker
Logo do Docker

Print do ServeRest iniciado no terminal

Consumindo o ServeRest

O ServeRest está disponível de forma online, no npm e no docker.

Todas essas opções possuem as mesmas rotas, regras, dados pré-cadastrados e documentação. Escolha a melhor opção para você.

No ambiente online os dados cadastrados são removidos diariamente, enquanto que no local basta reiniciar o ServeRest.

Prefira a opção de ambiente local caso precise que os dados não sejam alterados por outro usuário.

Online

Acesse https://serverest.dev para visualizar a documentação e as rotas disponíveis.

Essa é a melhor opção para quem não possui NPM e Docker na máquina ou não quer preocupar em gerenciar ambiente.

O ServeRest online possui monitoramento constante do status e tempo de atividade para garantir que esteja sempre disponível.

Localmente com NPM

Execute o seguinte comando no terminal:

npx serverest@latest
Abra para ver detalhes de configuração do ServeRest com NPM

Configuração

Para visualizar as configurações que são possíveis de serem feitas execute o comando:

npx serverest -h

Informação de opções e exemplos fornecidos no terminal

Segurança (--nosec)

Por default, o ServeRest irá fazer as seguintes alterações no cabeçalho, que podem ser desabilitadas com npx serverest --nosec:

Cabeçalhos adicionados:

  • Strict-Transport-Security: max-age=15552000; includeSubDomains
  • X-Content-Type-Options: nosniff
  • X-DNS-Prefetch-Control: off
  • X-Download-Options: noopen
  • X-Frame-Options: SAMEORIGIN
  • X-XSS-Protection: 1; mode=block

Cabeçalho removido:

  • X-Powered-By: Express

Utilize esse comportamento nos seus testes, validando a presença/ausência desses cabeçalhos.

Para saber mais leia o checklist de segurança de API


Localmente com docker

Execute o seguinte comando no terminal:

docker run -p 3000:3000 paulogoncalvesbh/serverest:latest

Para visualizar as configurações que são possíveis de serem feitas execute o comando:

docker run -p 3000:3000 paulogoncalvesbh/serverest:latest --help

Executando versão específica

Em ambos os comandos de subida de ambiente local será utilizado a última versão disponível. Caso queira usar uma versão específica basta substituir o latest pela versão desejada.

Você pode encontrar as versões disponíveis na lista de tags no Docker Hub e na lista de versões do NPM.

Teste de carga

IMPORTANTE

O teste de carga deve ser executado apenas em ambiente local (disponibilizado via NPM ou Docker e acessível via http://localhost:3000).

O não seguimento vai acarretar em prejuízo para o projeto open source e gratuito e irá impactar o estudo de outras pessoas.

Acesso ao status

Para acompanhar o comportamento do ServeRest diante dos seus testes você pode acessar a página http://localhost:3000/status, que contém informações como:

  • Uso de CPU.
  • Uso da memória.
  • Tempo de resposta.
  • RPS (Requisições por segundo).

A página de status (/status) está disponível apenas localmente.

Fez teste de carga? O que acha de compartilhar com o autor do projeto o repositório e o relatório final contendo dados de RPS para auxiliar o ServeRest a entender o comportamento de sua infra?

Badge

Criou repositório utilizando o ServeRest? Adicione o código abaixo no topo do README.md para ter a badge do projeto.

Badge ServeRest

[![Badge ServeRest](https://img.shields.io/badge/API-ServeRest-green)](https://github.com/ServeRest/ServeRest/)

Exemplos de automação

Os repositórios abaixo são exemplos de automação com boas práticas e que consome o ServeRest.

Para encontrar mais repositórios acesse https://github.com/search?q=serverest&type=Repositories

Doadores

Achou o projeto útil? Faça doação única ou mensal a partir de 1 dólar e ajude a pagar o domínio, a hospedagem e a manutenção de https://serverest.dev.

Pessoas que apoiam o ServeRest:

Apoiador individual - Open Collective

Empresas que apoiam o ServeRest financeiramente:

Logo da Compass Uol Logo da Compass Uol Logo da EBAC Logo da EBAC Logo da Agilizei

Todos os apoiadores anteriores e atuais podem ser vistos no Open Collective do ServeRest.

Patrocínio com produtos

ServeRest é apoiado pelas seguintes empresas, que fornecem acesso aos seus produtos através de plano de apoio a projetos open source:

Logo do Datadog Logo do 1password

Contribuidores ✨

Veja aqui como você pode contribuir. Contribuições de qualquer tipo são bem-vindas!

Leandro Muto
Leandro Muto

📖 🚇
Felipe Rodrigues
Felipe Rodrigues

🚇
Lucas Amaral
Lucas Amaral

📢 🐛 📖
lucas.fraga
lucas.fraga

🤔 🐛
bruno batista
bruno batista

🤔
Elias Reis
Elias Reis

🚧 🚇
gabriel-pinheiro
gabriel-pinheiro

💻 🤔
Rafael Gomes
Rafael Gomes

🚇
Diego Bandeira
Diego Bandeira

🚇
Maximiliano Alves
Maximiliano Alves

📢
Murilo Maia
Murilo Maia

💻
Cristina Nazário
Cristina Nazário

🤔 🐛
Eduardo Santos
Eduardo Santos

💻
Renato Davoli
Renato Davoli

💻
Camilla Silva
Camilla Silva

🐛 💻