https://github.com/pruiz05/evawebapi
User Api Rest - Create - Get
https://github.com/pruiz05/evawebapi
api-rest csharp dotnet mssql xunit-tests
Last synced: 3 months ago
JSON representation
User Api Rest - Create - Get
- Host: GitHub
- URL: https://github.com/pruiz05/evawebapi
- Owner: Pruiz05
- Created: 2024-10-28T22:30:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-30T00:59:52.000Z (over 1 year ago)
- Last Synced: 2024-12-18T00:42:25.274Z (over 1 year ago)
- Topics: api-rest, csharp, dotnet, mssql, xunit-tests
- Language: C#
- Homepage:
- Size: 197 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# User Api Restfull
Api Restfull para el proyecto de Evaluación.
## Requerimientos
- Visual Studio 2022
- SQL Server
- .Net 6+
## Instalación
1. Clonar el repositorio de Github
2. Abrir la carpeta del proyecto en Visual Studio
3. Ejecutar en el administrador de base de datos el script `Scripts/db_script.sql`
4. Configurar las variables de entorno en el archivo `appsettings.json`. Cambiar la conexión de la base de datos y la clave de encriptación `Servidor_SQL` por el servidor de SQL Server.
5. Ejecutar el proyecto con `dotnet run`
6. Abrir Swagger UI en `http://localhost:5022/swagger`
7. Ejecutar el endpoint `POST /api/User` para registrar un usuario.
8. Ejecutar el endpoint `GET /api/User` para consultar los usuarios - Se debe enviar el token JWT que se genera al registrar un usuario ya que esta api es privada.
## Uso
1. Limpia la carpeta de compilación anterior
```bash
dotnet clean
```
2. Compila el proyecto
```bash
dotnet build
```
3. Ejecutar el proyecto en Visual Studio Code:
```bash
dotnet run --project API
```
Ejecutar los tests unitarios:
```bash
dotnet test EvaUnitTest
```
## Paquetes utilizados
- [Entity Framework Core](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Tools/9.0.0-rc.2.24474.1)
- [Entity Framework Core Sql Server](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.SqlServer/9.0.0-rc.2.24474.1)
- [Fluent Validation](https://www.nuget.org/packages/FluentValidation/)
- [BCrypt.Net-Next](https://www.nuget.org/packages/BCrypt.Net-Next/)
- [Swashbuckle](https://www.nuget.org/packages/Swashbuckle.AspNetCore/)
### Registro
Para registrar un usuario se debe enviar un POST con los siguientes campos:
```
http://localhost:5022/api/User
```
```json
{
"name": "pedro rodriguez",
"email": "prodriguez@gmail.com",
"password": "Prueba123@*_2024",
"phones": [
{
"number": "1234567",
"cityCode": "1",
"countryCode": "57"
}
]
}
```
### Consulta de usuarios
Para consultar los usuarios se debe enviar un GET, con el token JWT que se crea al registrar un usuario.
```
http://localhost:5022/api/User
```
```curl
curl -X 'GET' \
'http://localhost:5022/api/User' \
-H 'accept: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Ik1hZHlzb245NkBnbWFpbC5jb20iLCJ1bmlxdWVfbmFtZSI6IkthcmxhIFBhZ2FjIiwiaWQiOiIyNjYzNjZiOC1lOTQ2LTRjYWEtYjM5Yy1lZTEyYWYwMDkzZGYiLCJuYW1lIjoiS2FybGEgUGFnYWMiLCJuYmYiOjE3MzAyNDQ4NTQsImV4cCI6MTczMDI0NjY1NCwiaWF0IjoxNzMwMjQ0ODU0fQ.R1Tul_QMeASHtAdsdmlDsVD30kgvzbjIuZCYvP65a5Y'
```
## Screenshots
### Diagrama de solución



## Estructura de directorios
- **API**: Proyecto de la API Restfull
- **Scripts**: Scripts para crear la base de datos y las tablas necesarias.
- **UnitTest**: Pruebas unitarias
## Licencia
Este proyecto está licenciado bajo licencia **MIT**, si desea saber más, visite el fichero [LICENSE](./LICENSE) para su uso docente y educativo.