Skip to content

open-sauced/go-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Open Sauced

🍕 Go API Client 🍕

The generated Go OpenSauced API client

GitHub code size in bytes GitHub issues GitHub Release Discord Twitter

This is a generated OpenAPI client for the OpenSauced API which uses the Swagger doc for the defined API. It can be used as a canonical and versioned source to interface with the OpenSauced API using Go.

🔧 Versioning

The version of the client corresponds directly withe the version of the API. See the OpenSauced API release notes for breaking changes, new features, etc.

🏗️ Usage

Add the client as a dependency in your project:

go get github.com/open-sauced/go-api/client

Here's a sample Go program that uses the client to get all pull requests

package main

import (
        "context"
        "fmt"
        "os"

        client "github.com/open-sauced/go-api/client"
)

func main() {
    configuration := client.NewConfiguration()
    apiClient := client.NewAPIClient(configuration)

    // The prod server is at index 1
    ctx := context.WithValue(context.Background(), client.ContextServerIndex, 1)

    resp, r, err := apiClient.PullRequestsServiceAPI.ListAllPullRequests(ctx).Execute()
    if err != nil {
        fmt.Fprintf(os.Stderr, "Error when calling `PullRequestsServiceAPI.ListAllPullRequests``: %v\n", err)
        fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
    }

    fmt.Printf("Responses: %v", resp)
}

Explore the generated docs within client/docs and generated/README.md to learn more about how this client works.

🚜 Generating the client

make generate-client

There are some rough edges when generating the OpenAPI client that you'll want to keep in mind:

  • Duplicate type structs may be defined (especially for endpoints that utilize dependent Dtos)
    • Remove duplicate type structs that don't correspond to the right API endpoint. Always refer to the API's swagger doc for the canonical source of truth.
    • Also remove the corresponding documentation bits.
  • The tests may not have correctly generated struct member func names.
    • Either remove those generated tests or find the correct struct member func and make the correct change.
  • In general, it's a good idea to view the diff and run go test ./... before committing new changes.
  • The "contributions" service, at the time of this writing, is not fully complete. So, it will have missing endpoints and no actual services. Its files can be safely deleted.

About

A Go client for the OpenSauced API

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  
  •  
  •  

Packages

No packages published