Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pruiz05/evawebapi
User Api Rest - Create - Get
https://github.com/pruiz05/evawebapi
api-rest csharp dotnet mssql xunit-tests
Last synced: 16 days 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 (17 days ago)
- Default Branch: main
- Last Pushed: 2024-10-30T00:59:52.000Z (16 days ago)
- Last Synced: 2024-10-30T02:52:45.844Z (16 days 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": "[email protected]",
"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
![Diagrama de solución](image-2.png)
![Swagger UI](image.png)
![Postman UI](image-1.png)
## 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.