Este projeto é um back end para fazer um catálogo de galáxias usando como base o express usando os conceitos de Clean nodeJS e SOLID.
Para iniciar o projeto, é nescessário adicionar a pasta node_modules com o npm ou yarn.
npm install
Para executar, rode o comando
npm run start:dev
Até o momento, este projeto não está ultilizando banco de dados. Agora, caso queira fazer o uso: Crie um serviço para o repositório usando seu banco de dados de preferência mas seguindo as regras do IGalaxiesRepositories dentro da pasta Repository, e para cada service na pasta UseCase instanciar o serviço criado e coloque dentro do parâmetro de instancia de cada serviço, seja de criar uma galaxia, listar...
exemplo
// CreateGalaxies.ts
...
const galaxiesRepository = GalaxiesRepository.getInstance();
const createGalaxyService = new CreateGalaxyService (galaxiesRepository);
...
Para documentar eu estou colocando o curl como exemplo, mas você pose usar um insominia, postman, ou até mesmo um client.
Registra uma nova galáxia
somente requer o body da requisição
body
{
id?: string;
name: string;
description: string;
uncovered: Date;
numberOfStars: number;
numberOfBlackHoles: number;
numberOfSuperMassiveBlackHoles: number;
}
curl -X POST http://localhost:3333/galaxies -H 'Content-Type: application/json' \
-d '{ "name": "Andromeda", "description": "A galaxia mais próxima de nós e que no futuro a via lactea (nossa galáxia) colidira com ela", "uncovered": "ano de 905", "numberOfStars": 1000000000000, "numberOfBlackHoles": 26, "numberOfSuperMassiveBlackHoles": 1 }'
Lista todas as Galaxias
não requer nenhuma infromação já que vai pegar todas as galaxias registradas. Aseguir temos objeto de retorno, lambrando, que ele vai retornan uma lista desses objetos.
id?: string;
name: string;
description: string;
uncovered: Date;
numberOfStars: number;
numberOfBlackHoles: number;
numberOfSuperMassiveBlackHoles: number;
created_at: Date;
updated_at: Date;
curl http://localhost:3333/galaxies
Remove uma galáxia
O valor indentificador é o id da galáxia, ele tem que ser passado no parâmetro da requisição
/galaxies/:id
Não se esqueça de mudar o id na hora de testar.
curl -X DELETE http://localhost:3333/galaxies/f7711bde-7106-4484-a9a8-2a2585253710