├── .gitignore ├── clean-architecture ├── 1. Entities - Enterprise Business Rules │ ├── City.ts │ └── PaddleCourt.ts ├── 2. UseCases - Application Business Rules │ ├── PaddleCourts.ts │ ├── SportsClubRepository.ts │ └── Weather.ts ├── 3. Presenters & Controllers & Gateways - Interface Adapters │ ├── SportsClub.ts │ └── SportsClubUserInterface.ts ├── 4. UI & Devices & Web & DB - Frameworks & Drivers │ ├── SportsClubInMemoryRepository.ts │ ├── SportsClubWebApi.ts │ └── WeatherWebApiClient.ts ├── README.md ├── container.ts ├── container.types.ts ├── main.ts ├── package-lock.json ├── package.json └── tsconfig.json ├── hexagonal-architecture ├── Application │ ├── PaddleCourts.ts │ ├── SportsClub.ts │ ├── adapters │ │ ├── SportsClubInMemoryRepository.ts │ │ ├── SportsClubWebApi.ts │ │ └── WeatherWebApi.ts │ └── ports │ │ ├── SportsClubRepository.ts │ │ ├── SportsClubUserInterface.ts │ │ └── Weather.ts ├── README.md ├── main.ts ├── package-lock.json ├── package.json └── tsconfig.json ├── onion-architecture ├── 1. DomainModel │ ├── City.ts │ └── PaddleCourt.ts ├── 2. DomainServices │ └── SportsClubRepository.ts ├── 3. ApplicationServices │ ├── PaddleCourts.ts │ └── Weather.ts ├── 4.A Infrastructure │ ├── SportsClubInMemoryRepository.ts │ └── WeatherWebApiClient.ts ├── 4.B UserInterface │ └── SportsClubWebApi.ts ├── README.md ├── container.ts ├── container.types.ts ├── main.ts ├── package-lock.json ├── package.json └── tsconfig.json └── three-layer-architecture ├── 1. Presentation └── SportsClubWebApi.ts ├── 2. Business Logic ├── PaddleCourts.ts └── Weather.ts ├── 3. Data Access └── SportsClubRepository.ts ├── README.md ├── main.ts ├── package-lock.json ├── package.json └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | */node_modules -------------------------------------------------------------------------------- /clean-architecture/1. Entities - Enterprise Business Rules/City.ts: -------------------------------------------------------------------------------- 1 | export type City = 'Madrid' | 'Valencia'; -------------------------------------------------------------------------------- /clean-architecture/1. Entities - Enterprise Business Rules/PaddleCourt.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/1. Entities - Enterprise Business Rules/PaddleCourt.ts -------------------------------------------------------------------------------- /clean-architecture/2. UseCases - Application Business Rules/PaddleCourts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/2. UseCases - Application Business Rules/PaddleCourts.ts -------------------------------------------------------------------------------- /clean-architecture/2. UseCases - Application Business Rules/SportsClubRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/2. UseCases - Application Business Rules/SportsClubRepository.ts -------------------------------------------------------------------------------- /clean-architecture/2. UseCases - Application Business Rules/Weather.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/2. UseCases - Application Business Rules/Weather.ts -------------------------------------------------------------------------------- /clean-architecture/3. Presenters & Controllers & Gateways - Interface Adapters/SportsClub.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/3. Presenters & Controllers & Gateways - Interface Adapters/SportsClub.ts -------------------------------------------------------------------------------- /clean-architecture/3. Presenters & Controllers & Gateways - Interface Adapters/SportsClubUserInterface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/3. Presenters & Controllers & Gateways - Interface Adapters/SportsClubUserInterface.ts -------------------------------------------------------------------------------- /clean-architecture/4. UI & Devices & Web & DB - Frameworks & Drivers/SportsClubInMemoryRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/4. UI & Devices & Web & DB - Frameworks & Drivers/SportsClubInMemoryRepository.ts -------------------------------------------------------------------------------- /clean-architecture/4. UI & Devices & Web & DB - Frameworks & Drivers/SportsClubWebApi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/4. UI & Devices & Web & DB - Frameworks & Drivers/SportsClubWebApi.ts -------------------------------------------------------------------------------- /clean-architecture/4. UI & Devices & Web & DB - Frameworks & Drivers/WeatherWebApiClient.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/4. UI & Devices & Web & DB - Frameworks & Drivers/WeatherWebApiClient.ts -------------------------------------------------------------------------------- /clean-architecture/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /clean-architecture/container.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/container.ts -------------------------------------------------------------------------------- /clean-architecture/container.types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/container.types.ts -------------------------------------------------------------------------------- /clean-architecture/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/main.ts -------------------------------------------------------------------------------- /clean-architecture/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/package-lock.json -------------------------------------------------------------------------------- /clean-architecture/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/package.json -------------------------------------------------------------------------------- /clean-architecture/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/clean-architecture/tsconfig.json -------------------------------------------------------------------------------- /hexagonal-architecture/Application/PaddleCourts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/Application/PaddleCourts.ts -------------------------------------------------------------------------------- /hexagonal-architecture/Application/SportsClub.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/Application/SportsClub.ts -------------------------------------------------------------------------------- /hexagonal-architecture/Application/adapters/SportsClubInMemoryRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/Application/adapters/SportsClubInMemoryRepository.ts -------------------------------------------------------------------------------- /hexagonal-architecture/Application/adapters/SportsClubWebApi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/Application/adapters/SportsClubWebApi.ts -------------------------------------------------------------------------------- /hexagonal-architecture/Application/adapters/WeatherWebApi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/Application/adapters/WeatherWebApi.ts -------------------------------------------------------------------------------- /hexagonal-architecture/Application/ports/SportsClubRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/Application/ports/SportsClubRepository.ts -------------------------------------------------------------------------------- /hexagonal-architecture/Application/ports/SportsClubUserInterface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/Application/ports/SportsClubUserInterface.ts -------------------------------------------------------------------------------- /hexagonal-architecture/Application/ports/Weather.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/Application/ports/Weather.ts -------------------------------------------------------------------------------- /hexagonal-architecture/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/README.md -------------------------------------------------------------------------------- /hexagonal-architecture/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/main.ts -------------------------------------------------------------------------------- /hexagonal-architecture/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/package-lock.json -------------------------------------------------------------------------------- /hexagonal-architecture/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/package.json -------------------------------------------------------------------------------- /hexagonal-architecture/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/hexagonal-architecture/tsconfig.json -------------------------------------------------------------------------------- /onion-architecture/1. DomainModel/City.ts: -------------------------------------------------------------------------------- 1 | export type City = 'Madrid' | 'Valencia'; -------------------------------------------------------------------------------- /onion-architecture/1. DomainModel/PaddleCourt.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/1. DomainModel/PaddleCourt.ts -------------------------------------------------------------------------------- /onion-architecture/2. DomainServices/SportsClubRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/2. DomainServices/SportsClubRepository.ts -------------------------------------------------------------------------------- /onion-architecture/3. ApplicationServices/PaddleCourts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/3. ApplicationServices/PaddleCourts.ts -------------------------------------------------------------------------------- /onion-architecture/3. ApplicationServices/Weather.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/3. ApplicationServices/Weather.ts -------------------------------------------------------------------------------- /onion-architecture/4.A Infrastructure/SportsClubInMemoryRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/4.A Infrastructure/SportsClubInMemoryRepository.ts -------------------------------------------------------------------------------- /onion-architecture/4.A Infrastructure/WeatherWebApiClient.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/4.A Infrastructure/WeatherWebApiClient.ts -------------------------------------------------------------------------------- /onion-architecture/4.B UserInterface/SportsClubWebApi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/4.B UserInterface/SportsClubWebApi.ts -------------------------------------------------------------------------------- /onion-architecture/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /onion-architecture/container.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/container.ts -------------------------------------------------------------------------------- /onion-architecture/container.types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/container.types.ts -------------------------------------------------------------------------------- /onion-architecture/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/main.ts -------------------------------------------------------------------------------- /onion-architecture/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/package-lock.json -------------------------------------------------------------------------------- /onion-architecture/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/package.json -------------------------------------------------------------------------------- /onion-architecture/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/onion-architecture/tsconfig.json -------------------------------------------------------------------------------- /three-layer-architecture/1. Presentation/SportsClubWebApi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/three-layer-architecture/1. Presentation/SportsClubWebApi.ts -------------------------------------------------------------------------------- /three-layer-architecture/2. Business Logic/PaddleCourts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/three-layer-architecture/2. Business Logic/PaddleCourts.ts -------------------------------------------------------------------------------- /three-layer-architecture/2. Business Logic/Weather.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/three-layer-architecture/2. Business Logic/Weather.ts -------------------------------------------------------------------------------- /three-layer-architecture/3. Data Access/SportsClubRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/three-layer-architecture/3. Data Access/SportsClubRepository.ts -------------------------------------------------------------------------------- /three-layer-architecture/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /three-layer-architecture/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/three-layer-architecture/main.ts -------------------------------------------------------------------------------- /three-layer-architecture/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/three-layer-architecture/package-lock.json -------------------------------------------------------------------------------- /three-layer-architecture/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/three-layer-architecture/package.json -------------------------------------------------------------------------------- /three-layer-architecture/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cbastos/web-api-microservice-architectures/HEAD/three-layer-architecture/tsconfig.json --------------------------------------------------------------------------------