API de Hotel

Esta API permite criar, atualizar, excluir e obter hotéis e quartos. Você também pode criar reservas para quartos.

A estrutura da sua API é a seguinte:

  • Controller: Os controllers são responsáveis por lidar com as solicitações HTTP e retornar as respostas.
  • Data: O diretório Data contém o contexto de dados e os modelos de dados.
  • Models: Os modelos de dados representam os dados que são armazenados no banco de dados.
  • appsettings.json: O arquivo appsettings.json contém as configurações da API, como a string de conexão do banco de dados.
  • program: O arquivo program é o ponto de entrada da API.

O contexto de dados é uma classe que fornece acesso ao banco de dados. Ele é herdado da classe DbContext do Entity Framework Core.

Os modelos de dados são classes que representam os dados que são armazenados no banco de dados. Eles são anotados com atributos do Entity Framework Core para indicar como os dados são mapeados para as tabelas do banco de dados.

O arquivo appsettings.json contém as configurações da API, como a string de conexão do banco de dados.

O arquivo program é o ponto de entrada da API. Ele inicia o servidor da API e registra os controllers.


Os seguintes pacotes estão instalados no projeto:

  • Mapster: Um pacote que permite mapear objetos .NET para modelos JSON.
  • Microsoft.AspNetCore.OpenApi: Um pacote que permite gerar e consumir APIs abertas.
  • Microsoft.EntityFrameworkCore: Um pacote que fornece um ORM para o .NET Core.
  • Microsoft.EntityFrameworkCore.Design: Um pacote que fornece suporte para o design de modelos de dados no Visual Studio.
  • Microsoft.EntityFrameworkCore.SqlServer: Um pacote que fornece um adaptador para o SQL Server.
  • Microsoft.EntityFrameworkCore.Tools: Um pacote que fornece ferramentas para o desenvolvimento de aplicativos EF Core.
  • Swashbuckle.AspNetCore: Um pacote que fornece suporte para a documentação de APIs.

Para obter mais informações sobre esses pacotes, consulte os links abaixo:

Pontos de extremidade

Ponto de extremidade Descrição
GET /hotels Obter todos os hotéis.
GET /hotels/{id} Obter um hotel pelo ID.
POST /hotels Criar um novo hotel.
PUT /hotels/{id} Atualizar um hotel pelo ID.
DELETE /hotels/{id} Excluir um hotel pelo ID.
GET /hotels/{id}/rooms Obter todos os quartos para um hotel pelo ID.
POST /hotels/{id}/rooms Criar um novo quarto para um hotel pelo ID.
PUT /hotels/{id}/rooms/{roomId} Atualizar um quarto para um hotel pelo ID.
DELETE /hotels/{id}/rooms/{roomId} Excluir um quarto para um hotel pelo ID.
POST /hotels/{id}/rooms/{roomId}/reservations Criar uma nova reserva para um quarto em um hotel pelo ID.

Corpos de solicitação e resposta

Ponto de extremidade Corpo da solicitação Corpo da resposta
GET /hotels Nenhum Uma lista de hotéis.
GET /hotels/{id} Nenhum Um hotel pelo ID.
POST /hotels Um objeto de hotel. O ID do novo hotel criado.
PUT /hotels/{id} Um objeto de hotel. O objeto de hotel atualizado.
DELETE /hotels/{id} Nenhum Nenhum.