go-task
An basic REST service (tasks) written in GO.
There's an basic UI for this service at: https://github.com/pedrocelso/go-task-ui A basic UI for this will be made using a create-react-app boilerplate.
About the project
My main goal for this project is to learn how to write Go code to be used on AppEngine, using the cloud datastore. I'm trying to add new useful things to the project, and learning them, for example, how to use JWT middleware on gin. You shouldn't expect anything advanced, as I'm struggling to keep this as simple as possible. I hope this helps new go programmers to ger started to AppEngine, and to write basic REST services.
An generic task abstraction. Users can have unlimited tasks, each task can have unlimited incidents:
An incident can be any kind of interation between the user and its task. It can be observations from a phone call, an email body, even an numeric workflow (not implemented). This should be the first step for complex projects, for instance a Follow-up backend, an BPMS backend, etc.
Milestones
Create basic routes and handlers;
Add basic CRUD operations for Users
;
Do whatever is needed to make it GAE-compatible;
Move the database from MySQL to Google Datastore?;
Add JWT authentication;
Add an new Entity Task
that will be assigned to a given User
See Task Endpoints
- Add an new Entity
Incident
that will be assigned to a given Task
See Incidents
Trivia
https://cloud.google.com/free/docs/always-free-usage-limits
Local Unit Testing for Go
https://cloud.google.com/appengine/docs/standard/go/tools/localunittesting/
AppEngine Test Package (aetest)
https://cloud.google.com/appengine/docs/standard/go/tools/localunittesting/reference
aetest is no longer needed, with the go111 runtime, it is now possible to write GO on a more idiomatic way. Now there's an interface that is implemented by Google Datastore and is easily mocked.