{"repo":"MarcGrol/golangAnnotations","free":true,"listed":false,"github":"https://github.com/MarcGrol/golangAnnotations","clone":"git clone https://github.com/MarcGrol/golangAnnotations.git","description":"Go package that provides annotations for golang to speedup web development","language":"Go","stars":365,"topics":["annotations","code-generation","golang","golang-tools","go","parser","tools"],"license":"MIT","category":"dev-tools","readme_excerpt":"Detailed explanation Summary The golangAnnotations-tool parses your golang source-code into an intermediate representation. Based on this intermediate representation, the tool uses your annotations to generate source code that would be cumbersome and error-prone to write manually. Bottom line, a lot less code needs to be written. Example: // @RestOperation( method = \"GET\", path = \"/person/{uid}\" ) func (s Service) getPerson(c context.Context, uid string) ( Person, error) { ... } Based on the annotation line code is generated that will do do all http handling: - read-request - unmarshall request - call business logic - marshall response - write response In addition, typestrong test functions are generated that ease testing of your rest operations. The same \"annotation\"-approach is used to ease event-sourcing. Getting the software $ go get -u -t -v github.com/MarcGrol/golangAnnotations/... Testing and installing $ make gen $ make test $ make install or $ make Currently supported annotations This first implementation provides the following kind of annotations: - web-services (jax-rs like): - Generate server-side http-handling for a \"service\" - Generate client-side http-handling for a \"service\" - Generate helpers to ease integration testing of your services - event-listeners: - Generate server-side http-handling for receiving events - Generate helpers to ease integration testing of your event-listeners - event-sourcing: - Describe which events belong to which aggregate - Type-str","default_branch":null,"files":null,"tree":[],"storefront":"/r/MarcGrol","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/MarcGrol/golangAnnotations/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}