Provides a simple way of constructing API endpoint calls with IntelliSense and chainable syntax.
package mainimport ("encoding/json""fmt""log""github.com/koltyakov/gosip""github.com/koltyakov/gosip/api"strategy "github.com/koltyakov/gosip/auth/addin")func main() {// Getting auth params and clientclient, err := getAuthClient()if err != nil {log.Fatalln(err)}// Binding SharePoint APIsp := api.NewSP(client)// Custom headers (optional)headers := map[string]string{"Accept": "application/json;odata=minimalmetadata","Accept-Language": "de-DE,de;q=0.9",}config := &api.RequestConfig{Headers: headers}// Chainable request sampledata, err := sp.Conf(config).Web().Lists().Select("Id,Title").Get()if err != nil {log.Fatalln(err)}// Response object unmarshalling// struct depends on OData mode and API methodres := &struct {Value []struct {ID string `json:"Id"`Title string `json:"Title"`} `json:"value"`}{}if err := json.Unmarshal(data, &res); err != nil {log.Fatalf("unable to parse the response: %v", err)}for _, list := range res.Value {fmt.Printf("%+v\n", list)}}func getAuthClient() (*gosip.SPClient, error) {configPath := "./config/private.spo-addin.json"auth := &strategy.AuthCnfg{}if err := auth.ReadConfig(configPath); err != nil {return nil, fmt.Errorf("unable to get config: %v", err)}return &gosip.SPClient{AuthCnfg: auth}, nil}
Get authenticated
Construct root SP
object using api.NewSP(client)
Construct API calls in a fluent way
Parse responses in the Go way
Embrase strongly typed generic responses
Build awesome apps in Go for SharePoint