{ "swagger": "2.0", "info": { "contact": {} }, "paths": { "/auth/github": { "get": { "description": "Redirects to GitHub authorization", "tags": [ "auth" ], "summary": "Start GitHub OAuth login", "responses": { "302": { "description": "Found" } } } }, "/callback/github": { "get": { "description": "Exchanges authorization code for access token", "produces": [ "application/json" ], "tags": [ "auth" ], "summary": "GitHub OAuth callback", "parameters": [ { "type": "string", "description": "Authorization code", "name": "code", "in": "query", "required": true } ], "responses": { "200": { "description": "Access token", "schema": { "type": "object", "additionalProperties": true } }, "400": { "description": "Missing code", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Exchange failed", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/posts": { "get": { "description": "Get all posts", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "posts" ], "summary": "Get all posts", "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.SuccessResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_storage.PostReq" } } } } ] } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } }, "404": { "description": "No Post found", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } } } }, "post": { "description": "Create new post", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "posts" ], "summary": "Create post", "parameters": [ { "description": "Post data", "name": "post", "in": "body", "required": true, "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_storage.PostCreate" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_storage.Post" } } } ] } }, "400": { "description": "Invalid request", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } } } } }, "/posts/{id}": { "get": { "description": "Get post by id", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "posts" ], "summary": "Get post by id", "parameters": [ { "type": "integer", "description": "Post ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_storage.PostReq" } } } ] } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } }, "404": { "description": "Post not found", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } } } }, "put": { "description": "Update post", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "posts" ], "summary": "Update post", "parameters": [ { "type": "integer", "description": "Post ID", "name": "id", "in": "path", "required": true }, { "description": "Post data", "name": "post", "in": "body", "required": true, "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_storage.PostCreate" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_storage.PostCreate" } } } ] } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } } } }, "delete": { "description": "Delete post", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "posts" ], "summary": "Delete post", "parameters": [ { "type": "integer", "description": "Post ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_storage.Post" } } } ] } }, "400": { "description": "Invalid ID format", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } }, "404": { "description": "Post not found", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse" } } } } } }, "definitions": { "gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorDetail": { "type": "object", "properties": { "code": { "type": "integer" }, "detail": { "type": "string" }, "message": { "type": "string" } } }, "gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorResponse": { "type": "object", "properties": { "error": { "$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.ErrorDetail" } } }, "gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_models.SuccessResponse": { "type": "object", "properties": { "data": {} } }, "gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_storage.Post": { "type": "object", "properties": { "content": { "type": "string" }, "created_at": { "type": "string" }, "id": { "type": "integer" }, "title": { "type": "string" } } }, "gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_storage.PostCreate": { "type": "object", "properties": { "content": { "type": "string" }, "title": { "type": "string" } } }, "gitea_d3m0k1d_ru_d3m0k1d_d3m0k1d_ru_backend_internal_storage.PostReq": { "type": "object", "properties": { "content": { "type": "string" }, "id": { "type": "integer" }, "title": { "type": "string" } } } } }