Demonstrate how the same functionality can be implemented by server-server and server-client models with different implementations/protocols.
- RESTful/swagger w/ go
- Graphql w/ go
- GRPC w/ go
Using the sample database, solve the problem
- Employee
- List
- Read
- Current Salary
- All salaries
- Current departments
- All departments
- Current Title
- Create
- Update
- Fire
- Associate to department
- Departments
- List
- Read
- Create
- Update
- Archive
- Must be schema-first implementation
- Service must have
- Validation
- Error handling
- Logging
- Authorisation (Authentication handled as part of an external oauth 2.0 implementation)
- Share the same data source
- data access layer: gorm
- request validation: govalidator
- application bootstrap: custom
docker-compose up
- start all implementations via docker-compose + common dependencies
- run migrations automatically on
up
- Get all impementations responding to http requests
- scaffold basic employees list implementation