All Projects → CodelyTV → go-hexagonal_http_api-course

CodelyTV / go-hexagonal_http_api-course

Licence: other
Ejemplos del curso de API HTTP en Go aplicando Arquitectura Hexagonal

Programming Languages

go
31211 projects - #10 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to go-hexagonal http api-course

Php Ddd Example
🐘🎯 Hexagonal Architecture + DDD + CQRS in PHP using Symfony 5
Stars: ✭ 1,960 (+2412.82%)
Mutual labels:  ddd, domain-driven-design, codelytv, hexagonal-architecture
typescript-ddd-course
🔷🔖 TypeScript DDD Course: Learn Domain-Driven Design in TS lesson by lesson
Stars: ✭ 28 (-64.1%)
Mutual labels:  ddd, domain-driven-design, codelytv, hexagonal-architecture
typescript-ddd-example
🔷🎯 TypeScript DDD Example: Complete project applying Hexagonal Architecture and Domain-Driven Design patterns
Stars: ✭ 607 (+678.21%)
Mutual labels:  ddd, domain-driven-design, codelytv, hexagonal-architecture
ddd-for-python
A domain-driven design framework for Python.
Stars: ✭ 30 (-61.54%)
Mutual labels:  ddd, domain-driven-design, hexagonal-architecture
DDD
Domain-Driven Design example
Stars: ✭ 116 (+48.72%)
Mutual labels:  ddd, domain-driven-design, hexagonal-architecture
educational-platform
Modular Monolith Java application with DDD
Stars: ✭ 124 (+58.97%)
Mutual labels:  ddd, domain-driven-design, hexagonal-architecture
ddd-example-ecommerce
Domain-driven design example in Java with Spring framework
Stars: ✭ 73 (-6.41%)
Mutual labels:  ddd, domain-driven-design, hexagonal-architecture
teamo-ddd-example
Implementing Domain Driven Design in PHP using Laravel
Stars: ✭ 46 (-41.03%)
Mutual labels:  ddd, domain-driven-design, hexagonal-architecture
csharp-ddd-skeleton
🦈✨ C# DDD Skeleton: Bootstrap your new C# projects applying Hexagonal Architecture and Domain-Driven Design patterns
Stars: ✭ 67 (-14.1%)
Mutual labels:  ddd, codelytv, hexagonal-architecture
Library
This is a project of a library, driven by real business requirements. We use techniques strongly connected with Domain Driven Design, Behavior-Driven Development, Event Storming, User Story Mapping.
Stars: ✭ 2,685 (+3342.31%)
Mutual labels:  ddd, domain-driven-design, hexagonal-architecture
repository
[PHP 7] Implementation and definition of a base Repository in Domain land.
Stars: ✭ 26 (-66.67%)
Mutual labels:  ddd, domain-driven-design, hexagonal-architecture
permacoop
Open source and eco design ERP solution reserved for worker-owned business.
Stars: ✭ 167 (+114.1%)
Mutual labels:  ddd, hexagonal-architecture
ddd-referenz
Deutsche Übersetzung der DDD Referenz von Eric Evans
Stars: ✭ 58 (-25.64%)
Mutual labels:  ddd, domain-driven-design
financial
POC de uma aplicação de domínio financeiro.
Stars: ✭ 62 (-20.51%)
Mutual labels:  domain-driven-design, hexagonal-architecture
cqrs-event-sourcing-example
Example of a list-making Web API using CQRS, Event Sourcing and DDD.
Stars: ✭ 28 (-64.1%)
Mutual labels:  domain-driven-design, hexagonal-architecture
ddd-house
🏠 Building a house with DDD
Stars: ✭ 38 (-51.28%)
Mutual labels:  ddd, domain-driven-design
kingdom-python-server
Modular, cohesive, transparent and fast web server template
Stars: ✭ 20 (-74.36%)
Mutual labels:  ddd, hexagonal-architecture
e-shop
Sample Spring Cloud microservices e-shop.
Stars: ✭ 48 (-38.46%)
Mutual labels:  ddd, domain-driven-design
EcommerceDDD
Experimental full-stack application using Domain-Driven Design, CQRS, and Event Sourcing.
Stars: ✭ 178 (+128.21%)
Mutual labels:  ddd, domain-driven-design
eventuous
Minimalistic Event Sourcing library for .NET
Stars: ✭ 236 (+202.56%)
Mutual labels:  ddd, domain-driven-design

CodelyTV - Go HTTP API - Hexagonal Architecture

This repository contains the code examples used on the CodelyTV course.

Requirements

  • Go v1.15+
  • MySQL (see below).

Contents

This project has been designed as a single Go module with multiple applications. Each folder contains a completely functional application (binary) that can be executed isolated.

Each folder corresponds to one of the course lessons / videos:

  1. 01-01-your-first-http-endpoint - Nuestro primer endpoint HTTP en Go
  2. 01-02-using-gin - Usando Gin: nuestro primer framework
  3. 01-03-architectured-healthcheck - Arquitecturando nuestro health check
  4. 02-01-post-course-endpoint - Implementando el endpoint de creación de curso
  5. 02-02-repository-injection - Inyectando nuestro repositorio
  6. 02-03-controller-test - Testeando nuestro endpoint
  7. 02-04-domain-validations - Añadiendo validaciones a nuestro dominio
  8. 03-01-mysql-repository-implementation - Implementando nuestro repositorio para MySQL
  9. 03-02-repository-test - Testeando nuestro repositorio
  10. 04-01-application-service - Refactorizando el endpoint para extraer el Application Service
  11. 04-02-application-service-test - Testeando el Application Service
  12. 04-03-command-bus - Unificando nuestros casos de uso: Command Bus
  13. 05-01-graceful-shutdown - Graceful shutdown
  14. 05-02-timeouts - Timeouts en operaciones asíncronas: repositorio
  15. 06-01-http-middlewares - Usando middlewares HTTP en Go
  16. 06-02-time-parse-in-go - El secreto mejor guardado de Go y sus fechas
  17. 06-03-gin-middlewares - Implementando el middleware de recuperación de errores en Gin
  18. 07-01-publishing-domain-events - Publicando eventos de curso creado
  19. 07-02-domain-events-subscriber - Implementando nuestro suscriptor de eventos
  20. 07-03-event-bus-implementation - Implementando el Event Bus
  21. 08-01-reading-env-variables - Leyendo configuración de variables de entorno
  22. 08-02-build-and-deploy - Build, despliegue y ¡a producción!
  23. 08-03-debugging - Generando la imagen de Docker y depurando errores

Usage

To execute the application from any lesson, just run:

export COURSE_LESSON=02-04-domain-validations; go run $COURSE_LESSON/cmd/api/main.go 

Replacing COURSE_LESSON value by any of the available ones.

Simple examples

Some lessons only contain a single main.go file with a few lines of code. To run one of those lessons, just run:

export COURSE_LESSON=01-01-your-first-http-endpoint; go run $COURSE_LESSON/main.go 

MySQL & Docker

From 02-01-post-course-endpoint on, the application on each directory relies on a MySQL database. So, to simplify its execution, we've added a docker-compose.yaml file with a MySQL container already set up.

To run it, just execute:

docker-compose up -d 

You can also use your own MySQL instance. Note that those applications expects a MySQL instance to be available on localhost:3306, identified by codely:codely and with a codely database.

To set up your database, you can execute the schema.sql file present on the sql directory. It's automatically loaded if you use the provided docker-compose.yaml file.

Tests

To execute all tests, just run:

go test ./... 

To execute only the tests present in one of the lessons, run:

go test ./02-04-domain-validations/... 
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].