]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - support/openapi/go/README.mustache
d58657b5bf738bba758766f6f35ccdec021fb113
[github/Chocobozzz/PeerTube.git] / support / openapi / go / README.mustache
1 # Go API client for {{appName}}
2
3 This Python package is automatically generated from [PeerTube's REST API](https://docs.joinpeertube.org/api/rest-reference.html),
4 using the [OpenAPI Generator](https://openapi-generator.tech) project:
5
6 - API version: {{appVersion}}
7 - Package version: {{packageVersion}}
8 {{^hideGenerationTimestamp}}
9 - Build date: {{generatedDate}}
10 {{/hideGenerationTimestamp}}
11 - Build package: {{generatorClass}}
12
13 {{#infoUrl}}
14 For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}})
15 {{/infoUrl}}
16
17 ## Installation
18
19 Install the following dependencies:
20
21 ```shell
22 go get github.com/stretchr/testify/assert
23 go get golang.org/x/oauth2
24 go get golang.org/x/net/context
25 go get github.com/antihax/optional
26 ```
27
28 Put the package under your project folder and add the following in import:
29
30 ```golang
31 import "./{{packageName}}"
32 ```
33
34 ## Documentation for API Endpoints
35
36 All URIs are relative to *{{basePath}}*
37
38 Class | Method | HTTP request | Description
39 ------------ | ------------- | ------------- | -------------
40 {{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{summary}}{{/summary}}
41 {{/operation}}{{/operations}}{{/apis}}{{/apiInfo}}
42
43 ## Documentation For Models
44
45 {{#models}}{{#model}} - [{{{classname}}}]({{modelDocPath}}{{{classname}}}.md)
46 {{/model}}{{/models}}
47
48 ## Documentation For Authorization
49
50 {{^authMethods}} Endpoints do not require authorization.
51 {{/authMethods}}{{#authMethods}}{{#last}} Authentication schemes defined for the API:{{/last}}{{/authMethods}}
52 {{#authMethods}}
53
54 ## {{{name}}}
55
56 {{#isApiKey}}- **Type**: API key
57
58 Example
59
60 ```golang
61 auth := context.WithValue(context.Background(), sw.ContextAPIKey, sw.APIKey{
62 Key: "APIKEY",
63 Prefix: "Bearer", // Omit if not necessary.
64 })
65 r, err := client.Service.Operation(auth, args)
66 ```
67
68 {{/isApiKey}}
69 {{#isBasic}}- **Type**: HTTP basic authentication
70
71 Example
72
73 ```golang
74 auth := context.WithValue(context.Background(), sw.ContextBasicAuth, sw.BasicAuth{
75 UserName: "username",
76 Password: "password",
77 })
78 r, err := client.Service.Operation(auth, args)
79 ```
80
81 {{/isBasic}}
82 {{#isOAuth}}
83
84 - **Type**: OAuth
85 - **Flow**: {{{flow}}}
86 - **Authorization URL**: {{{authorizationUrl}}}
87 - **Scopes**: {{^scopes}}N/A{{/scopes}}
88 {{#scopes}} - **{{{scope}}}**: {{{description}}}
89 {{/scopes}}
90
91 Example
92
93 ```golang
94 auth := context.WithValue(context.Background(), sw.ContextAccessToken, "ACCESSTOKENSTRING")
95 r, err := client.Service.Operation(auth, args)
96 ```
97
98 Or via OAuth2 module to automatically refresh tokens and perform user authentication.
99
100 ```golang
101 import "golang.org/x/oauth2"
102
103 /* Perform OAuth2 round trip request and obtain a token */
104
105 tokenSource := oauth2cfg.TokenSource(createContext(httpClient), &token)
106 auth := context.WithValue(oauth2.NoContext, sw.ContextOAuth2, tokenSource)
107 r, err := client.Service.Operation(auth, args)
108 ```
109
110 {{/isOAuth}}
111 {{/authMethods}}
112
113 ## License
114
115 Copyright (C) 2015-2020 PeerTube Contributors
116
117 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.
118
119 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.
120
121 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.