Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ServeRest/ServeRest

APIs REST simulando loja virtual para servir de estudo de testes de API de forma manual ou automatizada
https://github.com/ServeRest/ServeRest

api-rest api-testing hacktoberfest rest serverest testing

Last synced: 12 days ago
JSON representation

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

Awesome Lists containing this project

README

        

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](#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](https://serverest.dev), no [npm](https://www.npmjs.com/package/serverest) e no [docker](https://hub.docker.com/r/paulogoncalvesbh/serverest/).

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 **** 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:

```sh
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:

```sh
npx serverest -h
```

![Informação de opções e exemplos fornecidos no terminal](https://user-images.githubusercontent.com/29241659/84348644-d45eae00-ab8b-11ea-89a4-d8cda3b32b74.png)

#### 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](https://github.com/shieldfy/API-Security-Checklist#api-security-checklist)

---

### Localmente com docker

Execute o seguinte comando no terminal:

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

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

```sh
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](https://hub.docker.com/r/paulogoncalvesbh/serverest/tags) e na [lista de versões do NPM](https://www.npmjs.com/package/serverest).

## Teste de carga

### IMPORTANTE

**O teste de carga deve ser executado apenas em ambiente local (disponibilizado via [NPM](#localmente-com-npm) ou [Docker](#localmente-com-docker) e acessível via ).**

> 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 , 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](https://img.shields.io/badge/API-ServeRest-green)](https://github.com/ServeRest/ServeRest/)

```markdown
[![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.

- [Java > Automação com REST-Assured e Junit - Lucas Fraga](https://github.com/uLucasFraga/restassured_for_studies)
- [JS > Automação com Supertest, Mocha e Chai - Paulo Gonçalves](https://github.com/PauloGoncalvesBH/sample-supertest)
- [JS > Automação com Playwright - Leonardo Tsuda](https://github.com/ltsuda/playwright-serverest)
- [Python > Automação com Pytest - Leonardo Tsuda](https://github.com/ltsuda/pytest-serverest-study)
- [Robot Framework > Automação com RequestsLibrary - Mayara Fernandes](https://github.com/mayribeirofernandes/testesrobotframework/tree/HEAD/ExemploAPI_ServeRest)
- [Ruby > Automação com HTTParty e RSpec - Bruno Quintanilha](https://github.com/braquintanilha/serverest-httparty-rspec)

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 .

Pessoas que apoiam o ServeRest:

[![Apoiador individual - Open Collective](https://opencollective.com/serverest/tiers/apoiador.svg)](https://opencollective.com/serverest)

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](https://opencollective.com/serverest#section-contributors).

### 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](https://github.com/ServeRest/ServeRest/blob/trunk/.github/CONTRIBUTING.md). 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

🐛 💻