|
1 | | -# OpenAPIServer |
2 | | -API for the Catrobat Share Platform |
3 | | - |
4 | | -This [Symfony](https://symfony.com/) bundle is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: |
5 | | - |
6 | | -- API version: v1.6.0 |
7 | | -- Generator version: 7.5.0 |
8 | | -- Build package: org.openapitools.codegen.languages.PhpSymfonyServerCodegen |
9 | | -For more information, please visit [https://share.catrob.at](https://share.catrob.at) |
10 | | - |
11 | | -## Requirements |
12 | | - |
13 | | -PHP 8.0 and later |
14 | | - |
15 | | -## Installation & Usage |
16 | | - |
17 | | -To install the dependencies via [Composer](http://getcomposer.org/), add the following repository to `composer.json` of your Symfony project: |
18 | | - |
19 | | -```json |
20 | | -{ |
21 | | - "repositories": [{ |
22 | | - "type": "path", |
23 | | - "url": "//Path to your generated openapi bundle" |
24 | | - }], |
25 | | -} |
26 | | -``` |
27 | | - |
28 | | -Then run: |
29 | | - |
30 | | -``` |
31 | | -composer require GIT_USER_ID/GIT_REPO_ID:dev-master |
32 | | -``` |
33 | | - |
34 | | -to add the generated openapi bundle as a dependency. |
35 | | - |
36 | | -## Tests |
37 | | - |
38 | | -To run the unit tests for the generated bundle, first navigate to the directory containing the code, then run the following commands: |
39 | | - |
40 | | -``` |
41 | | -composer install |
42 | | -./vendor/bin/phpunit |
43 | | -``` |
44 | | - |
45 | | - |
46 | | -## Getting Started |
47 | | - |
48 | | -Step 1: Please follow the [installation procedure](#installation--usage) first. |
49 | | - |
50 | | -Step 2: Enable the bundle in the bundle configuration: |
51 | | - |
52 | | -```php |
53 | | -// app/config/bundles.php |
54 | | -return [ |
55 | | - // ... |
56 | | - OpenAPI\Server\OpenAPIServerBundle::class => ['all' => true], |
57 | | -]; |
58 | | -``` |
59 | | - |
60 | | -Step 3: Register the routes: |
61 | | - |
62 | | -```yaml |
63 | | -# app/config/routes.yaml |
64 | | -open_api_server: |
65 | | - resource: "@OpenAPIServerBundle/Resources/config/routing.yaml" |
66 | | -``` |
67 | | -
|
68 | | -Step 4: Implement the API calls: |
69 | | -
|
70 | | -```php |
71 | | -<?php |
72 | | -// src/Acme/MyBundle/Api/AuthenticationApi.php |
73 | | - |
74 | | -namespace Acme\MyBundle\Api; |
75 | | - |
76 | | -use OpenAPI\Server\Api\AuthenticationApiInterface; |
77 | | - |
78 | | -class AuthenticationApi implements AuthenticationApiInterface // An interface is autogenerated |
79 | | -{ |
80 | | - |
81 | | - /** |
82 | | - * Implementation of AuthenticationApiInterface#authenticationDelete |
83 | | - */ |
84 | | - public function authenticationDelete(string $x_refresh, int &$responseCode, array &$responseHeaders): void |
85 | | - { |
86 | | - // Implement the operation ... |
87 | | - } |
88 | | - |
89 | | - // Other operation methods ... |
90 | | -} |
91 | | -``` |
92 | | - |
93 | | -Step 5: Tag your API implementation: |
94 | | - |
95 | | -```yaml |
96 | | -# config/services.yaml |
97 | | -services: |
98 | | - # ... |
99 | | - Acme\MyBundle\Api\AuthenticationApi: |
100 | | - tags: |
101 | | - - { name: "open_api_server.api", api: "authentication" } |
102 | | - # ... |
103 | | -``` |
104 | | - |
105 | | -Now you can start using the bundle! |
106 | | - |
107 | | - |
108 | | -## Documentation for API Endpoints |
109 | | - |
110 | | -All URIs are relative to *https://share.catrob.at/api* |
111 | | - |
112 | | -Class | Method | HTTP request | Description |
113 | | ------------- | ------------- | ------------- | ------------- |
114 | | -*AuthenticationApiInterface* | [**authenticationDelete**](docs/Api/AuthenticationApiInterface.md#authenticationdelete) | **DELETE** /authentication | Expires refresh token |
115 | | -*AuthenticationApiInterface* | [**authenticationGet**](docs/Api/AuthenticationApiInterface.md#authenticationget) | **GET** /authentication | Check JWT token validity |
116 | | -*AuthenticationApiInterface* | [**authenticationOauthPost**](docs/Api/AuthenticationApiInterface.md#authenticationoauthpost) | **POST** /authentication/oauth | OAuth Login |
117 | | -*AuthenticationApiInterface* | [**authenticationPost**](docs/Api/AuthenticationApiInterface.md#authenticationpost) | **POST** /authentication | Login - create a new JWT token |
118 | | -*AuthenticationApiInterface* | [**authenticationRefreshPost**](docs/Api/AuthenticationApiInterface.md#authenticationrefreshpost) | **POST** /authentication/refresh | Refresh token |
119 | | -*AuthenticationApiInterface* | [**authenticationUpgradePost**](docs/Api/AuthenticationApiInterface.md#authenticationupgradepost) | **POST** /authentication/upgrade | Upgrade a deprecated token to JWT |
120 | | -*MediaLibraryApiInterface* | [**mediaFileIdGet**](docs/Api/MediaLibraryApiInterface.md#mediafileidget) | **GET** /media/file/{id} | Get the information of a specific media file |
121 | | -*MediaLibraryApiInterface* | [**mediaFilesGet**](docs/Api/MediaLibraryApiInterface.md#mediafilesget) | **GET** /media/files | Get *all* content of the media library. |
122 | | -*MediaLibraryApiInterface* | [**mediaFilesSearchGet**](docs/Api/MediaLibraryApiInterface.md#mediafilessearchget) | **GET** /media/files/search | Search for mediafiles associated with keywords |
123 | | -*MediaLibraryApiInterface* | [**mediaPackageNameGet**](docs/Api/MediaLibraryApiInterface.md#mediapackagenameget) | **GET** /media/package/{name} | Get media-library asstes of a named package |
124 | | -*NotificationsApiInterface* | [**notificationIdReadPut**](docs/Api/NotificationsApiInterface.md#notificationidreadput) | **PUT** /notification/{id}/read | Mark specified notification as read |
125 | | -*NotificationsApiInterface* | [**notificationsCountGet**](docs/Api/NotificationsApiInterface.md#notificationscountget) | **GET** /notifications/count | Count the number of unseen notifications |
126 | | -*NotificationsApiInterface* | [**notificationsGet**](docs/Api/NotificationsApiInterface.md#notificationsget) | **GET** /notifications | Get user notifications -- StatusCode: 501 - Not yet implemented |
127 | | -*NotificationsApiInterface* | [**notificationsReadPut**](docs/Api/NotificationsApiInterface.md#notificationsreadput) | **PUT** /notifications/read | Mark all notifications as read |
128 | | -*ProjectsApiInterface* | [**projectIdCatrobatGet**](docs/Api/ProjectsApiInterface.md#projectidcatrobatget) | **GET** /project/{id}/catrobat | Download the .catrobat (=zip) file of a project |
129 | | -*ProjectsApiInterface* | [**projectIdDelete**](docs/Api/ProjectsApiInterface.md#projectiddelete) | **DELETE** /project/{id} | Delete a project |
130 | | -*ProjectsApiInterface* | [**projectIdGet**](docs/Api/ProjectsApiInterface.md#projectidget) | **GET** /project/{id} | Get the information of a project |
131 | | -*ProjectsApiInterface* | [**projectIdPut**](docs/Api/ProjectsApiInterface.md#projectidput) | **PUT** /project/{id} | Update details of a project |
132 | | -*ProjectsApiInterface* | [**projectIdRecommendationsGet**](docs/Api/ProjectsApiInterface.md#projectidrecommendationsget) | **GET** /project/{id}/recommendations | Get recommended projects related to the specific project |
133 | | -*ProjectsApiInterface* | [**projectIdReportPost**](docs/Api/ProjectsApiInterface.md#projectidreportpost) | **POST** /project/{id}/report | Report a project -- StatusCode: 501 - Not yet implemented |
134 | | -*ProjectsApiInterface* | [**projectsCategoriesGet**](docs/Api/ProjectsApiInterface.md#projectscategoriesget) | **GET** /projects/categories | Get default number of projects per category (Most downloaded etc.) |
135 | | -*ProjectsApiInterface* | [**projectsExtensionsGet**](docs/Api/ProjectsApiInterface.md#projectsextensionsget) | **GET** /projects/extensions | Get all possible project extensions. Extensions are automatically added to projects based on their bricks. |
136 | | -*ProjectsApiInterface* | [**projectsFeaturedGet**](docs/Api/ProjectsApiInterface.md#projectsfeaturedget) | **GET** /projects/featured | Get the currently featured projects |
137 | | -*ProjectsApiInterface* | [**projectsGet**](docs/Api/ProjectsApiInterface.md#projectsget) | **GET** /projects | Get projects |
138 | | -*ProjectsApiInterface* | [**projectsPost**](docs/Api/ProjectsApiInterface.md#projectspost) | **POST** /projects | Upload a catrobat project |
139 | | -*ProjectsApiInterface* | [**projectsSearchGet**](docs/Api/ProjectsApiInterface.md#projectssearchget) | **GET** /projects/search | Search for projects associated with a keywords |
140 | | -*ProjectsApiInterface* | [**projectsTagsGet**](docs/Api/ProjectsApiInterface.md#projectstagsget) | **GET** /projects/tags | Get all possible project tags. Some Tags will only be availabe during events. |
141 | | -*ProjectsApiInterface* | [**projectsUserGet**](docs/Api/ProjectsApiInterface.md#projectsuserget) | **GET** /projects/user | Get the projects of the logged in user |
142 | | -*ProjectsApiInterface* | [**projectsUserIdGet**](docs/Api/ProjectsApiInterface.md#projectsuseridget) | **GET** /projects/user/{id} | Get the public projects of a given user |
143 | | -*SearchApiInterface* | [**searchGet**](docs/Api/SearchApiInterface.md#searchget) | **GET** /search | Search for projects, users,.. |
144 | | -*StudioApiInterface* | [**studioIdDelete**](docs/Api/StudioApiInterface.md#studioiddelete) | **DELETE** /studio/{id} | Delete a studio (only available to studio admins) |
145 | | -*StudioApiInterface* | [**studioIdGet**](docs/Api/StudioApiInterface.md#studioidget) | **GET** /studio/{id} | Get studio details (private studios are only available to members) |
146 | | -*StudioApiInterface* | [**studioIdPost**](docs/Api/StudioApiInterface.md#studioidpost) | **POST** /studio/{id} | Update a Studio (only available to studio admins) |
147 | | -*StudioApiInterface* | [**studioPost**](docs/Api/StudioApiInterface.md#studiopost) | **POST** /studio | Create a new Studio |
148 | | -*UserApiInterface* | [**userDelete**](docs/Api/UserApiInterface.md#userdelete) | **DELETE** /user | Delete user account |
149 | | -*UserApiInterface* | [**userGet**](docs/Api/UserApiInterface.md#userget) | **GET** /user | Get your private user data |
150 | | -*UserApiInterface* | [**userIdGet**](docs/Api/UserApiInterface.md#useridget) | **GET** /user/{id} | Get public user data |
151 | | -*UserApiInterface* | [**userPost**](docs/Api/UserApiInterface.md#userpost) | **POST** /user | Register |
152 | | -*UserApiInterface* | [**userPut**](docs/Api/UserApiInterface.md#userput) | **PUT** /user | Update User |
153 | | -*UserApiInterface* | [**userResetPasswordPost**](docs/Api/UserApiInterface.md#userresetpasswordpost) | **POST** /user/reset-password | Request email to reset password |
154 | | -*UserApiInterface* | [**usersGet**](docs/Api/UserApiInterface.md#usersget) | **GET** /users | Get users |
155 | | -*UserApiInterface* | [**usersSearchGet**](docs/Api/UserApiInterface.md#userssearchget) | **GET** /users/search | Search for users |
156 | | -*UtilityApiInterface* | [**healthGet**](docs/Api/UtilityApiInterface.md#healthget) | **GET** /health | Health Check |
157 | | -*UtilityApiInterface* | [**surveyLangCodeGet**](docs/Api/UtilityApiInterface.md#surveylangcodeget) | **GET** /survey/{lang_code} | Get survey link for given language code. |
158 | | - |
159 | | - |
160 | | -## Documentation For Models |
161 | | - |
162 | | - - [BaseUser](docs/Model/BaseUser.md) |
163 | | - - [BasicUserDataResponse](docs/Model/BasicUserDataResponse.md) |
164 | | - - [CreateStudioErrorResponse](docs/Model/CreateStudioErrorResponse.md) |
165 | | - - [DryRun](docs/Model/DryRun.md) |
166 | | - - [ExtendedUserDataResponse](docs/Model/ExtendedUserDataResponse.md) |
167 | | - - [ExtensionResponse](docs/Model/ExtensionResponse.md) |
168 | | - - [FeaturedProjectResponse](docs/Model/FeaturedProjectResponse.md) |
169 | | - - [JWTResponse](docs/Model/JWTResponse.md) |
170 | | - - [LoginRequest](docs/Model/LoginRequest.md) |
171 | | - - [MediaCategoryResponse](docs/Model/MediaCategoryResponse.md) |
172 | | - - [MediaFileResponse](docs/Model/MediaFileResponse.md) |
173 | | - - [MediaPackageResponse](docs/Model/MediaPackageResponse.md) |
174 | | - - [NotificationContent](docs/Model/NotificationContent.md) |
175 | | - - [NotificationResponse](docs/Model/NotificationResponse.md) |
176 | | - - [NotificationsCountResponse](docs/Model/NotificationsCountResponse.md) |
177 | | - - [OAuthLoginRequest](docs/Model/OAuthLoginRequest.md) |
178 | | - - [ProjectReportRequest](docs/Model/ProjectReportRequest.md) |
179 | | - - [ProjectResponse](docs/Model/ProjectResponse.md) |
180 | | - - [ProjectsCategory](docs/Model/ProjectsCategory.md) |
181 | | - - [RefreshRequest](docs/Model/RefreshRequest.md) |
182 | | - - [RegisterErrorResponse](docs/Model/RegisterErrorResponse.md) |
183 | | - - [RegisterRequest](docs/Model/RegisterRequest.md) |
184 | | - - [ResetPasswordErrorResponse](docs/Model/ResetPasswordErrorResponse.md) |
185 | | - - [ResetPasswordRequest](docs/Model/ResetPasswordRequest.md) |
186 | | - - [SearchResponse](docs/Model/SearchResponse.md) |
187 | | - - [StudioResponse](docs/Model/StudioResponse.md) |
188 | | - - [SurveyResponse](docs/Model/SurveyResponse.md) |
189 | | - - [TagResponse](docs/Model/TagResponse.md) |
190 | | - - [UpdateProjectErrorResponse](docs/Model/UpdateProjectErrorResponse.md) |
191 | | - - [UpdateProjectFailureResponse](docs/Model/UpdateProjectFailureResponse.md) |
192 | | - - [UpdateProjectRequest](docs/Model/UpdateProjectRequest.md) |
193 | | - - [UpdateStudioErrorResponse](docs/Model/UpdateStudioErrorResponse.md) |
194 | | - - [UpdateUserErrorResponse](docs/Model/UpdateUserErrorResponse.md) |
195 | | - - [UpdateUserRequest](docs/Model/UpdateUserRequest.md) |
196 | | - - [UpgradeTokenRequest](docs/Model/UpgradeTokenRequest.md) |
197 | | - - [UploadErrorResponse](docs/Model/UploadErrorResponse.md) |
198 | | - |
199 | | - |
200 | | -## Documentation For Authorization |
201 | | - |
202 | | - |
203 | | -Authentication schemes defined for the API: |
204 | | -### BearerAuth |
205 | | - |
206 | | -- **Type**: HTTP Bearer Token authentication (JWT) |
207 | | - |
208 | | - |
209 | | -## Author |
210 | | - |
211 | | -webmaster@catrobat.org |
212 | | - |
| 1 | +moved to https://github.com/Catrobat/Catroweb || https://developer.catrobat.org/Catroweb/ |
0 commit comments