tsk-15: Add API documentation (#17)

Closes #15

Reviewed-on: phoenix/textsender-auth#17
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
phoenix
2025-11-14 17:56:51 +00:00
committed by phoenix
parent 6f608b757c
commit 8a90448854
10 changed files with 675 additions and 1 deletions
+230
View File
@@ -0,0 +1,230 @@
// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs
import "github.com/swaggo/swag"
const docTemplate = `{
"schemes": {{ marshal .Schemes }},
"swagger": "2.0",
"info": {
"description": "{{escape .Description}}",
"title": "{{.Title}}",
"contact": {},
"version": "{{.Version}}"
},
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/login": {
"post": {
"security": [
{
"BearerAuth": []
}
],
"description": "Login and be given an access token (requires JWT)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"users"
],
"summary": "Login",
"parameters": [
{
"description": "Data to obtain a token",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handler.LoginAccount"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/handler.LoginResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/handler.LoginResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/handler.LoginResponse"
}
}
}
}
},
"/register": {
"post": {
"security": [
{
"BearerAuth": []
}
],
"description": "Create a user that can send texts (requires JWT)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"users"
],
"summary": "Register user",
"parameters": [
{
"description": "Data to add user",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handler.RegisterUser"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/handler.RegisterResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/handler.RegisterResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/handler.RegisterResponse"
}
}
}
}
}
},
"definitions": {
"handler.LoginAccount": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"handler.LoginResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/token.Login"
}
},
"message": {
"type": "string"
}
}
},
"handler.RegisterResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/handler.RegisterResponseItem"
}
},
"message": {
"type": "string"
}
}
},
"handler.RegisterResponseItem": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"phone_number": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"handler.RegisterUser": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"phone_number": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"token.Login": {
"type": "object",
"properties": {
"access_token": {
"type": "string"
},
"expires_in": {
"type": "integer"
},
"token_type": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"BearerAuth": {
"description": "JWT Bearer Token",
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
}
}`
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
Version: "1.0",
Host: "localhost:9080",
BasePath: "/api/v1",
Schemes: []string{},
Title: "textsender-auth",
Description: "Auth API to send text messages",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
LeftDelim: "{{",
RightDelim: "}}",
}
func init() {
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
+206
View File
@@ -0,0 +1,206 @@
{
"swagger": "2.0",
"info": {
"description": "Auth API to send text messages",
"title": "textsender-auth",
"contact": {},
"version": "1.0"
},
"host": "localhost:9080",
"basePath": "/api/v1",
"paths": {
"/login": {
"post": {
"security": [
{
"BearerAuth": []
}
],
"description": "Login and be given an access token (requires JWT)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"users"
],
"summary": "Login",
"parameters": [
{
"description": "Data to obtain a token",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handler.LoginAccount"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/handler.LoginResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/handler.LoginResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/handler.LoginResponse"
}
}
}
}
},
"/register": {
"post": {
"security": [
{
"BearerAuth": []
}
],
"description": "Create a user that can send texts (requires JWT)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"users"
],
"summary": "Register user",
"parameters": [
{
"description": "Data to add user",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handler.RegisterUser"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/handler.RegisterResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/handler.RegisterResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/handler.RegisterResponse"
}
}
}
}
}
},
"definitions": {
"handler.LoginAccount": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"handler.LoginResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/token.Login"
}
},
"message": {
"type": "string"
}
}
},
"handler.RegisterResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/handler.RegisterResponseItem"
}
},
"message": {
"type": "string"
}
}
},
"handler.RegisterResponseItem": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"phone_number": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"handler.RegisterUser": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"phone_number": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"token.Login": {
"type": "object",
"properties": {
"access_token": {
"type": "string"
},
"expires_in": {
"type": "integer"
},
"token_type": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"BearerAuth": {
"description": "JWT Bearer Token",
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
}
}
+132
View File
@@ -0,0 +1,132 @@
basePath: /api/v1
definitions:
handler.LoginAccount:
properties:
password:
type: string
username:
type: string
type: object
handler.LoginResponse:
properties:
data:
items:
$ref: '#/definitions/token.Login'
type: array
message:
type: string
type: object
handler.RegisterResponse:
properties:
data:
items:
$ref: '#/definitions/handler.RegisterResponseItem'
type: array
message:
type: string
type: object
handler.RegisterResponseItem:
properties:
id:
type: string
phone_number:
type: string
username:
type: string
type: object
handler.RegisterUser:
properties:
password:
type: string
phone_number:
type: string
username:
type: string
type: object
token.Login:
properties:
access_token:
type: string
expires_in:
type: integer
token_type:
type: string
type: object
host: localhost:9080
info:
contact: {}
description: Auth API to send text messages
title: textsender-auth
version: "1.0"
paths:
/login:
post:
consumes:
- application/json
description: Login and be given an access token (requires JWT)
parameters:
- description: Data to obtain a token
in: body
name: request
required: true
schema:
$ref: '#/definitions/handler.LoginAccount'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.LoginResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/handler.LoginResponse'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/handler.LoginResponse'
security:
- BearerAuth: []
summary: Login
tags:
- users
/register:
post:
consumes:
- application/json
description: Create a user that can send texts (requires JWT)
parameters:
- description: Data to add user
in: body
name: request
required: true
schema:
$ref: '#/definitions/handler.RegisterUser'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.RegisterResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/handler.RegisterResponse'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/handler.RegisterResponse'
security:
- BearerAuth: []
summary: Register user
tags:
- users
securityDefinitions:
BearerAuth:
description: JWT Bearer Token
in: header
name: Authorization
type: apiKey
swagger: "2.0"