Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/ServeRest/ServeRest
- Owner: ServeRest
- Created: 2019-08-16T22:32:59.000Z (about 5 years ago)
- Default Branch: trunk
- Last Pushed: 2024-04-11T11:42:24.000Z (7 months ago)
- Last Synced: 2024-04-13T21:57:43.495Z (7 months ago)
- Topics: api-rest, api-testing, hacktoberfest, rest, serverest, testing
- Language: JavaScript
- Homepage: https://serverest.dev
- Size: 5.17 MB
- Stars: 664
- Watchers: 9
- Forks: 79
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
ServeRest
Servidor REST para estudo de testes de API
Código de conduta |
Como contribuir |
Histórico de alterações |
Doadores
_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
Local com NPM
Local com docker
## 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íficaEm 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:
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:
## 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
📖 🚇
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
💻
Renato Davoli
💻
Camilla Silva
🐛 💻