Autobindings is a simple extention to the amazing library Binding. So binding is a reflectionless data binding for Go's net/http. For that developer has to write a FieldMap function which is used by this library to map the incoming JSON from the request to the struct fields.
So it automatically creates FieldMap function for your struct.
Just add this line to all of your files which has struct and for which you want to create a FieldMap function
//go:generate autobindings -file <file_name>
Or
From command line just run
autobindings -file <file_name>
Or
If you don't want to create the automatic files, then use -print flag to just print the function associated with your struct on the console
autobindings -file <file_name> -print
Example
$ ./generator -file testfile.go -print
package main
/*
This is an autogenerated file by autobindings
*/
import (
"github.com/mholt/binding"
)
func (i Item) FieldMap() binding.FieldMap {
return binding.FieldMap{
&i.A: "A",
&i.B: "B",
}
}
go install github.com/rainingclouds/autobindings
Using the power of go generate :) It creates <struct_name>_bindings.go for every struct in the given file. This file contains FieldMap function for that struct. This function is used by Binding library to perform the mapping.
- It doesn't support Embedded fields yet.