• Stars
    star
    660
  • Rank 66,196 (Top 2 %)
  • Language
    JavaScript
  • License
    GNU General Publi...
  • Created almost 5 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

ServeRest

Servidor REST para estudo de testes de API

serverest version Docker Pulls Mutation test score serverest total downloads

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

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
  • Teste de carga

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

  1. É obrigatório enviar o header monitor: false em todas as requisições do seu teste de carga.
  2. 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 dos 2 tópicos acimas 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

Patrocinadores

Empresas ($15+/mês)

Sua empresa usa o ServeRest? Pergunte ao seu gerente ou equipe de marketing se sua empresa estaria interessada em apoiar este projeto e ter os seguintes serviços:

  1. Subdomínio próprio (nome-escolhido.serverest.dev)
  2. Acesso a todas as requests e respostas feitas nos últimos 7 dias no subdomínio

Empresas - Open Collective

Empresas que apoiam o ServeRest:

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

Individuais

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.

Apoiador individual - Open Collective

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

Contribuidores

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


Leandro Muto

📖 🚇

Felipe Rodrigues

🚇

Lucas Amaral

📢 🐛 📖

lucas.fraga

🤔 🐛

bruno batista

🤔

Elias Reis

🚧 🚇

gabriel-pinheiro

💻 🤔

Rafael Gomes

🚇

Diego Bandeira

🚇

Maximiliano Alves

📢

Murilo Maia

💻

Cristina Nazário

🤔

Eduardo Santos

💻