You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
3.6 KiB
Plaintext
122 lines
3.6 KiB
Plaintext
# Go API client for {{appName}}
|
|||
|
|||
This Python package is automatically generated from [PeerTube's REST API](https://docs.joinpeertube.org/api-rest-reference.html),
|
|||
using the [OpenAPI Generator](https://openapi-generator.tech) project:
|
|||
|
|||
- API version: {{appVersion}}
|
|||
- Package version: {{packageVersion}}
|
|||
{{^hideGenerationTimestamp}}
|
|||
- Build date: {{generatedDate}}
|
|||
{{/hideGenerationTimestamp}}
|
|||
- Build package: {{generatorClass}}
|
|||
|
|||
{{#infoUrl}}
|
|||
For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}})
|
|||
{{/infoUrl}}
|
|||
|
|||
## Installation
|
|||
|
|||
Install the following dependencies:
|
|||
|
|||
```shell
|
|||
go get github.com/stretchr/testify/assert
|
|||
go get golang.org/x/oauth2
|
|||
go get golang.org/x/net/context
|
|||
go get github.com/antihax/optional
|
|||
```
|
|||
|
|||
Put the package under your project folder and add the following in import:
|
|||
|
|||
```golang
|
|||
import "./{{packageName}}"
|
|||
```
|
|||
|
|||
## Documentation for API Endpoints
|
|||
|
|||
All URIs are relative to *{{basePath}}*
|
|||
|
|||
Class | Method | HTTP request | Description
|
|||
------------ | ------------- | ------------- | -------------
|
|||
{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{summary}}{{/summary}}
|
|||
{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}}
|
|||
|
|||
## Documentation For Models
|
|||
|
|||
{{#models}}{{#model}} - [{{{classname}}}]({{modelDocPath}}{{{classname}}}.md)
|
|||
{{/model}}{{/models}}
|
|||
|
|||
## Documentation For Authorization
|
|||
|
|||
{{^authMethods}} Endpoints do not require authorization.
|
|||
{{/authMethods}}{{#authMethods}}{{#last}} Authentication schemes defined for the API:{{/last}}{{/authMethods}}
|
|||
{{#authMethods}}
|
|||
|
|||
## {{{name}}}
|
|||
|
|||
{{#isApiKey}}- **Type**: API key
|
|||
|
|||
Example
|
|||
|
|||
```golang
|
|||
auth := context.WithValue(context.Background(), sw.ContextAPIKey, sw.APIKey{
|
|||
Key: "APIKEY",
|
|||
Prefix: "Bearer", // Omit if not necessary.
|
|||
})
|
|||
r, err := client.Service.Operation(auth, args)
|
|||
```
|
|||
|
|||
{{/isApiKey}}
|
|||
{{#isBasic}}- **Type**: HTTP basic authentication
|
|||
|
|||
Example
|
|||
|
|||
```golang
|
|||
auth := context.WithValue(context.Background(), sw.ContextBasicAuth, sw.BasicAuth{
|
|||
UserName: "username",
|
|||
Password: "password",
|
|||
})
|
|||
r, err := client.Service.Operation(auth, args)
|
|||
```
|
|||
|
|||
{{/isBasic}}
|
|||
{{#isOAuth}}
|
|||
|
|||
- **Type**: OAuth
|
|||
- **Flow**: {{{flow}}}
|
|||
- **Authorization URL**: {{{authorizationUrl}}}
|
|||
- **Scopes**: {{^scopes}}N/A{{/scopes}}
|
|||
{{#scopes}} - **{{{scope}}}**: {{{description}}}
|
|||
{{/scopes}}
|
|||
|
|||
Example
|
|||
|
|||
```golang
|
|||
auth := context.WithValue(context.Background(), sw.ContextAccessToken, "ACCESSTOKENSTRING")
|
|||
r, err := client.Service.Operation(auth, args)
|
|||
```
|
|||
|
|||
Or via OAuth2 module to automatically refresh tokens and perform user authentication.
|
|||
|
|||
```golang
|
|||
import "golang.org/x/oauth2"
|
|||
|
|||
/* Perform OAuth2 round trip request and obtain a token */
|
|||
|
|||
tokenSource := oauth2cfg.TokenSource(createContext(httpClient), &token)
|
|||
auth := context.WithValue(oauth2.NoContext, sw.ContextOAuth2, tokenSource)
|
|||
r, err := client.Service.Operation(auth, args)
|
|||
```
|
|||
|
|||
{{/isOAuth}}
|
|||
{{/authMethods}}
|
|||
|
|||
## License
|
|||
|
|||
Copyright (C) 2015-2020 PeerTube Contributors
|
|||
|
|||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
|||
|
|||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
|||
|
|||
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses.
|