Zona de juegos de API web C# dotnet (muchos ejemplos + implementación de Docker)
Contexto
Muchas veces necesitamos publicar microservicios RESTful, bien documentados y desplegados en contenedores Docker (Kubernetes, Google Cloud Run, plataformas Serverless, etc.).
Este proyecto de área de juegos muestra muchas características que puede reutilizar en sus proyectos.
Es un proyecto en vivo y probablemente se actualizará con frecuencia.
¿Qué hace esta aplicación?
- La aplicación hace muchas cosas. Muchos puntos finales de la API web quedan expuestos cuando ejecuta el proyecto.
- Ver documentación (página predeterminada cuando se ejecuta el proyecto)
Pila y temas principales del proyecto.
Sobre el autor y la licencia
- Erick es arquitecto y desarrollador backend senior.
- Puede comunicarse con Erick por correo electrónico [email protected] o Linkedin https://www.linkedin.com/in/seixaserick/
- Otros repositorios de Github: https://github.com/seixaserick/
- Licencia MIT (consulte LICENSE.txt para obtener más detalles)
Cómo ejecutar este proyecto
Clonar el repositorio
Si ya instaló Git para Windows, ejecute los siguientes comandos:
git clone https://github.com/seixaserick/dotnet-webapi-playground
cd dotnet-webapi-playground
Cómo ejecutar este proyecto en contenedores Docker
Si ya instaló Docker Desktop, simplemente siga estos pasos a continuación
Creando una imagen acoplable
Para crear una imagen de Docker, ejecute la siguiente línea de comando en el símbolo del sistema del directorio del proyecto:
docker build -t dotnet-webapi-playground -f Dockerfile .
Ejecutar la aplicación en un contenedor acoplable
Configure un servidor Redis en Docker si no tiene una instancia de Redis
docker run --name redis -d -p 6379:6379 -e REDIS_PASSWORD=supersecretpassword --restart always redis:latest /bin/sh -c 'redis-server --appendonly yes --requirepass ${REDIS_PASSWORD}'
Para ejecutar la imagen en el contenedor Docker e interactuar con ella, ejecute la línea de comando a continuación:
docker run -it -p 1977:80 --name=dotnet-webapi-playground --restart=always dotnet-webapi-playground
Abierto: http://localhost:1977/square/8 (sin https)
Para detener el contenedor, ejecute la siguiente línea de comando:
docker stop dotnet-webapi-playground
Para eliminar el contenedor (incluso si se está ejecutando), ejecute la siguiente línea de comando:
docker rm --force dotnet-webapi-playground
Cómo compilar y ejecutar sin Docker (Windows)
Después de clonar el repositorio, puede abrir el proyecto con Visual Studio. Compílelo o simplemente depurelo presionando F5
.
Para compilarlo y ejecutarlo en Windows (se requiere Visual Studio)
Abra el archivo de solución dotnet-webapi-playground.sln
con su Visual Studio, luego presione F5
para ejecutar el proyecto.
Comidas para llevar
- Swagger es un gran generador de documentación.
- C# WebApis son muy livianos para ejecutarse dentro de Docker Containers con menos de 256 MB de RAM
- Json Parse está hecho por dotnet de una manera fácil y liviana
- Docker es una buena herramienta para ejecutar proyectos rápidamente sin preocuparse por las dependencias y configuraciones.
- C# es muy similar a otros lenguajes basados en ECMA (Java, Javascript, etc.)
- Los algoritmos hash son sólo "unidireccionales". No puede recuperar la cadena de entrada de un hash determinado.
- Los códigos de respuesta se pueden personalizar fácilmente en la respuesta API (ejemplo: Conflicto HTTP 409, Pago requerido HTTP 402, etc.). Vea los códigos de respuesta HTTP completos.
- Los buenos archivos Markdown README.md pueden ayudar a otros desarrolladores a comprender, clonar, ejecutar y probar proyectos.
Desafío de tarea
- Cree un nuevo modelo de objetos en la carpeta Modelos y cree un nuevo punto final de API (método HTTP GET) para realizar algunos cálculos y devolver este nuevo objeto.
- Cree una nueva extensión de tipo de datos de C# y úsela para manipular sus tipos de datos nativos. Ejemplo: cree una
string extension
para hacer .ToBase64Encode()
, luego puede probar inputString.ToBase64Encode();
en lugar de enfoque de función. - Cree un nuevo punto final POST API para recibir algún objeto y hacer algo con él, devolviendo un resultado.
- Intente implementar el caché distribuido de Redis en algún punto final.