Skip to content

SotaTatsumi/cios-golang-sdk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OPTiM Cloud IoT OS Golang SDK (0.4.2)

It is a convenient SDK to use OPTiM Cloud IoT OS(CIOS) in Go language.

This SDK uses OpenAPI and is generated in code. OpenAPI will be split at a later date, but is now included in the code. It is imperfect.

Instration

go get -u github.com/optim-corp/cios-golang-sdk

Usage

Initialization

  • If you want to use Prod Client
client = ciossdk.NewCiosClient(ciossdk.CiosClientConfig{
    Debug:             true,
    AutoRefresh:       true,
    Urls:              sdkmodel.ProdUrls(),
})
  • If you want to use Pre Client
client = ciossdk.NewCiosClient(ciossdk.CiosClientConfig{
    Debug:             true,
    AutoRefresh:       true,
    Urls:              sdkmodel.PreUrls(),
})
  • If you want to use Custom URL
client = ciossdk.NewCiosClient(ciossdk.CiosClientConfig{
    Debug:             true,
    AutoRefresh:       true,
    Urls: ciossdk.CIOSUrl{
        MessagingUrl:             " https://",
        LocationUrl:              " https://",
        AccountsUrl:              " https://",
        StorageUrl:               " https://",
        IamUrl:                   " https://",
        AuthUrl:                  " https://",
        VideoStreamingUrl:        " https://",
        DeviceManagementUrl:      " https://",
        DeviceMonitoringUrl:      " https://",
        DeviceAssetManagementUrl: " https://",
    },
})

Authentication

OAuthClientType is Suppoted
Web
Client
Device
Native
  • Client Auth
    • client id
    • client secret
    • request scope
client = ciossdk.NewCiosClient(ciossdk.CiosClientConfig{
    AuthConfig: ClientAuthConf(
           "clientID",
           "clientSecret",
           "scope",
   ),
})
  • Refresh Token Auth
    • client id
    • client secret
    • refresh token
    • request scope
client = ciossdk.NewCiosClient(ciossdk.CiosClientConfig{
    AuthConfig: RefreshTokenAuth(
           "clientID",
           "clientSecret",
           "refreshToken",
           "scope",
   ),
})
  • Device Auth
    • client id
    • client secret
    • assertion
    • request scope
client = ciossdk.NewCiosClient(ciossdk.CiosClientConfig{
    AuthConfig: DeviceAuthConf(
           "clientID",
           "clientSecret",
           "assertion",
           "scope",
   ),
})

The refresh token will only be executed once if the request fails.

Document

How to test client

package ciossdk_mock has mock interface

Usage

var client = ciossdk.NewCiosClient()
type MockBucket struct {
	ciossdk_mock.NoImplementFileStorage
}

func (*MockBucket) GetBuckets(ctx ciosctx.RequestCtx, request cios.ApiGetBucketsRequest) (cios.MultipleBucket, *_nethttp.Response, error) {
    return cios.MultipleBucket{}, nil, nil
}
func Test_sampleGetBucket(t *testing.T) {
    mock := &ciossdk_mock.MockClient{}
    mock.SetFileStorage(&MockBucket{})
    client = mock
    ....
}

How to Support

If you have any issues or questions, please raise them on Github issues.

LICENSE

The Apache-2.0 License

Copyright (c) 2021 OPTiM Corporation https://www.optim.co.jp/

About

It is a convenient SDK to use OPTiM Cloud IoT OS(CIOS) in Go language

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.4%
  • Other 0.6%