image: add gen swagger dockerfile

This commit is contained in:
singchia
2024-03-08 19:48:49 +08:00
parent ab59ece219
commit 2bba763ac3
4 changed files with 1359 additions and 0 deletions

534
docs/swagger/docs.go Normal file
View File

@@ -0,0 +1,534 @@
// Package swagger Code generated by swaggo/swag. DO NOT EDIT
package swagger
import "github.com/swaggo/swag"
const docTemplate = `{
"schemes": {{ marshal .Schemes }},
"swagger": "2.0",
"info": {
"description": "{{escape .Description}}",
"title": "{{.Title}}",
"contact": {
"name": "Austin Zhai",
"email": "singchia@163.com"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "{{.Version}}"
},
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/v1/edges": {
"get": {
"tags": [
"1.0"
],
"summary": "ListEdges",
"parameters": [
{
"type": "string",
"name": "addr",
"in": "query"
},
{
"type": "integer",
"name": "edge_id",
"in": "query"
},
{
"type": "integer",
"name": "end_time",
"in": "query"
},
{
"type": "string",
"name": "meta",
"in": "query"
},
{
"type": "string",
"name": "order",
"in": "query"
},
{
"type": "integer",
"name": "page",
"in": "query"
},
{
"type": "integer",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"name": "rpc",
"in": "query"
},
{
"type": "integer",
"name": "start_time",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.ListEdgesResponse"
}
}
}
}
},
"/v1/edges/rpcs": {
"get": {
"tags": [
"1.0"
],
"summary": "List Edges RPCs",
"parameters": [
{
"type": "integer",
"name": "edge_id",
"in": "query"
},
{
"type": "integer",
"name": "end_time",
"in": "query"
},
{
"type": "string",
"name": "meta",
"in": "query"
},
{
"type": "string",
"name": "order",
"in": "query"
},
{
"type": "integer",
"name": "page",
"in": "query"
},
{
"type": "integer",
"name": "page_size",
"in": "query"
},
{
"type": "integer",
"name": "start_time",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.ListEdgeRPCsResponse"
}
}
}
}
},
"/v1/edges/{edge_id}": {
"get": {
"tags": [
"1.0"
],
"summary": "Get Edge",
"parameters": [
{
"type": "integer",
"name": "edge_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.Edge"
}
}
}
},
"delete": {
"tags": [
"1.0"
],
"summary": "Kick Edge",
"parameters": [
{
"type": "integer",
"name": "edge_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.KickEdgeResponse"
}
}
}
}
},
"/v1/services": {
"get": {
"tags": [
"1.0"
],
"summary": "List Services",
"parameters": [
{
"type": "string",
"name": "addr",
"in": "query"
},
{
"type": "integer",
"name": "end_time",
"in": "query"
},
{
"type": "string",
"name": "order",
"in": "query"
},
{
"type": "integer",
"name": "page",
"in": "query"
},
{
"type": "integer",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"name": "rpc",
"in": "query"
},
{
"type": "string",
"name": "service",
"in": "query"
},
{
"type": "integer",
"name": "service_id",
"in": "query"
},
{
"type": "integer",
"name": "start_time",
"in": "query"
},
{
"type": "string",
"name": "topic",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.ListServicesResponse"
}
}
}
}
},
"/v1/services/rpcs": {
"get": {
"tags": [
"1.0"
],
"summary": "List Services RPCs",
"parameters": [
{
"type": "integer",
"name": "end_time",
"in": "query"
},
{
"type": "string",
"name": "order",
"in": "query"
},
{
"type": "integer",
"name": "page",
"in": "query"
},
{
"type": "integer",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"name": "service",
"in": "query"
},
{
"type": "integer",
"name": "service_id",
"in": "query"
},
{
"type": "integer",
"name": "start_time",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.ListServiceRPCsResponse"
}
}
}
}
},
"/v1/services/topics": {
"get": {
"tags": [
"1.0"
],
"summary": "List Services Topics",
"parameters": [
{
"type": "integer",
"name": "end_time",
"in": "query"
},
{
"type": "string",
"name": "order",
"in": "query"
},
{
"type": "integer",
"name": "page",
"in": "query"
},
{
"type": "integer",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"name": "service",
"in": "query"
},
{
"type": "integer",
"name": "service_id",
"in": "query"
},
{
"type": "integer",
"name": "start_time",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.ListServiceTopicsResponse"
}
}
}
}
},
"/v1/services/{service_id}": {
"get": {
"tags": [
"1.0"
],
"summary": "Get Service",
"parameters": [
{
"type": "integer",
"name": "service_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.Service"
}
}
}
},
"delete": {
"tags": [
"1.0"
],
"summary": "Kick Service",
"parameters": [
{
"type": "integer",
"name": "service_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.KickServiceResponse"
}
}
}
}
}
},
"definitions": {
"v1.Edge": {
"type": "object",
"properties": {
"addr": {
"type": "string"
},
"create_time": {
"type": "integer"
},
"edge_id": {
"type": "integer"
},
"meta": {
"type": "string"
}
}
},
"v1.KickEdgeResponse": {
"type": "object"
},
"v1.KickServiceResponse": {
"type": "object"
},
"v1.ListEdgeRPCsResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"rpcs": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"v1.ListEdgesResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"edges": {
"type": "array",
"items": {
"$ref": "#/definitions/v1.Edge"
}
}
}
},
"v1.ListServiceRPCsResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"rpcs": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"v1.ListServiceTopicsResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"topics": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"v1.ListServicesResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"services": {
"type": "array",
"items": {
"$ref": "#/definitions/v1.Service"
}
}
}
},
"v1.Service": {
"type": "object",
"properties": {
"addr": {
"type": "string"
},
"create_time": {
"type": "integer"
},
"service": {
"type": "string"
},
"service_id": {
"type": "integer"
}
}
}
}
}`
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
Version: "1.0",
Host: "",
BasePath: "",
Schemes: []string{},
Title: "Frontier Swagger API",
Description: "",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
LeftDelim: "{{",
RightDelim: "}}",
}
func init() {
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}

507
docs/swagger/swagger.json Normal file
View File

@@ -0,0 +1,507 @@
{
"swagger": "2.0",
"info": {
"title": "Frontier Swagger API",
"contact": {
"name": "Austin Zhai",
"email": "singchia@163.com"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "1.0"
},
"paths": {
"/v1/edges": {
"get": {
"tags": [
"1.0"
],
"summary": "ListEdges",
"parameters": [
{
"type": "string",
"name": "addr",
"in": "query"
},
{
"type": "integer",
"name": "edge_id",
"in": "query"
},
{
"type": "integer",
"name": "end_time",
"in": "query"
},
{
"type": "string",
"name": "meta",
"in": "query"
},
{
"type": "string",
"name": "order",
"in": "query"
},
{
"type": "integer",
"name": "page",
"in": "query"
},
{
"type": "integer",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"name": "rpc",
"in": "query"
},
{
"type": "integer",
"name": "start_time",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.ListEdgesResponse"
}
}
}
}
},
"/v1/edges/rpcs": {
"get": {
"tags": [
"1.0"
],
"summary": "List Edges RPCs",
"parameters": [
{
"type": "integer",
"name": "edge_id",
"in": "query"
},
{
"type": "integer",
"name": "end_time",
"in": "query"
},
{
"type": "string",
"name": "meta",
"in": "query"
},
{
"type": "string",
"name": "order",
"in": "query"
},
{
"type": "integer",
"name": "page",
"in": "query"
},
{
"type": "integer",
"name": "page_size",
"in": "query"
},
{
"type": "integer",
"name": "start_time",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.ListEdgeRPCsResponse"
}
}
}
}
},
"/v1/edges/{edge_id}": {
"get": {
"tags": [
"1.0"
],
"summary": "Get Edge",
"parameters": [
{
"type": "integer",
"name": "edge_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.Edge"
}
}
}
},
"delete": {
"tags": [
"1.0"
],
"summary": "Kick Edge",
"parameters": [
{
"type": "integer",
"name": "edge_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.KickEdgeResponse"
}
}
}
}
},
"/v1/services": {
"get": {
"tags": [
"1.0"
],
"summary": "List Services",
"parameters": [
{
"type": "string",
"name": "addr",
"in": "query"
},
{
"type": "integer",
"name": "end_time",
"in": "query"
},
{
"type": "string",
"name": "order",
"in": "query"
},
{
"type": "integer",
"name": "page",
"in": "query"
},
{
"type": "integer",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"name": "rpc",
"in": "query"
},
{
"type": "string",
"name": "service",
"in": "query"
},
{
"type": "integer",
"name": "service_id",
"in": "query"
},
{
"type": "integer",
"name": "start_time",
"in": "query"
},
{
"type": "string",
"name": "topic",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.ListServicesResponse"
}
}
}
}
},
"/v1/services/rpcs": {
"get": {
"tags": [
"1.0"
],
"summary": "List Services RPCs",
"parameters": [
{
"type": "integer",
"name": "end_time",
"in": "query"
},
{
"type": "string",
"name": "order",
"in": "query"
},
{
"type": "integer",
"name": "page",
"in": "query"
},
{
"type": "integer",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"name": "service",
"in": "query"
},
{
"type": "integer",
"name": "service_id",
"in": "query"
},
{
"type": "integer",
"name": "start_time",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.ListServiceRPCsResponse"
}
}
}
}
},
"/v1/services/topics": {
"get": {
"tags": [
"1.0"
],
"summary": "List Services Topics",
"parameters": [
{
"type": "integer",
"name": "end_time",
"in": "query"
},
{
"type": "string",
"name": "order",
"in": "query"
},
{
"type": "integer",
"name": "page",
"in": "query"
},
{
"type": "integer",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"name": "service",
"in": "query"
},
{
"type": "integer",
"name": "service_id",
"in": "query"
},
{
"type": "integer",
"name": "start_time",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.ListServiceTopicsResponse"
}
}
}
}
},
"/v1/services/{service_id}": {
"get": {
"tags": [
"1.0"
],
"summary": "Get Service",
"parameters": [
{
"type": "integer",
"name": "service_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.Service"
}
}
}
},
"delete": {
"tags": [
"1.0"
],
"summary": "Kick Service",
"parameters": [
{
"type": "integer",
"name": "service_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "result",
"schema": {
"$ref": "#/definitions/v1.KickServiceResponse"
}
}
}
}
}
},
"definitions": {
"v1.Edge": {
"type": "object",
"properties": {
"addr": {
"type": "string"
},
"create_time": {
"type": "integer"
},
"edge_id": {
"type": "integer"
},
"meta": {
"type": "string"
}
}
},
"v1.KickEdgeResponse": {
"type": "object"
},
"v1.KickServiceResponse": {
"type": "object"
},
"v1.ListEdgeRPCsResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"rpcs": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"v1.ListEdgesResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"edges": {
"type": "array",
"items": {
"$ref": "#/definitions/v1.Edge"
}
}
}
},
"v1.ListServiceRPCsResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"rpcs": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"v1.ListServiceTopicsResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"topics": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"v1.ListServicesResponse": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"services": {
"type": "array",
"items": {
"$ref": "#/definitions/v1.Service"
}
}
}
},
"v1.Service": {
"type": "object",
"properties": {
"addr": {
"type": "string"
},
"create_time": {
"type": "integer"
},
"service": {
"type": "string"
},
"service_id": {
"type": "integer"
}
}
}
}
}

312
docs/swagger/swagger.yaml Normal file
View File

@@ -0,0 +1,312 @@
definitions:
v1.Edge:
properties:
addr:
type: string
create_time:
type: integer
edge_id:
type: integer
meta:
type: string
type: object
v1.KickEdgeResponse:
type: object
v1.KickServiceResponse:
type: object
v1.ListEdgeRPCsResponse:
properties:
count:
type: integer
rpcs:
items:
type: string
type: array
type: object
v1.ListEdgesResponse:
properties:
count:
type: integer
edges:
items:
$ref: '#/definitions/v1.Edge'
type: array
type: object
v1.ListServiceRPCsResponse:
properties:
count:
type: integer
rpcs:
items:
type: string
type: array
type: object
v1.ListServiceTopicsResponse:
properties:
count:
type: integer
topics:
items:
type: string
type: array
type: object
v1.ListServicesResponse:
properties:
count:
type: integer
services:
items:
$ref: '#/definitions/v1.Service'
type: array
type: object
v1.Service:
properties:
addr:
type: string
create_time:
type: integer
service:
type: string
service_id:
type: integer
type: object
info:
contact:
email: singchia@163.com
name: Austin Zhai
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
title: Frontier Swagger API
version: "1.0"
paths:
/v1/edges:
get:
parameters:
- in: query
name: addr
type: string
- in: query
name: edge_id
type: integer
- in: query
name: end_time
type: integer
- in: query
name: meta
type: string
- in: query
name: order
type: string
- in: query
name: page
type: integer
- in: query
name: page_size
type: integer
- in: query
name: rpc
type: string
- in: query
name: start_time
type: integer
responses:
"200":
description: result
schema:
$ref: '#/definitions/v1.ListEdgesResponse'
summary: ListEdges
tags:
- "1.0"
/v1/edges/{edge_id}:
delete:
parameters:
- in: query
name: edge_id
type: integer
responses:
"200":
description: result
schema:
$ref: '#/definitions/v1.KickEdgeResponse'
summary: Kick Edge
tags:
- "1.0"
get:
parameters:
- in: query
name: edge_id
type: integer
responses:
"200":
description: result
schema:
$ref: '#/definitions/v1.Edge'
summary: Get Edge
tags:
- "1.0"
/v1/edges/rpcs:
get:
parameters:
- in: query
name: edge_id
type: integer
- in: query
name: end_time
type: integer
- in: query
name: meta
type: string
- in: query
name: order
type: string
- in: query
name: page
type: integer
- in: query
name: page_size
type: integer
- in: query
name: start_time
type: integer
responses:
"200":
description: result
schema:
$ref: '#/definitions/v1.ListEdgeRPCsResponse'
summary: List Edges RPCs
tags:
- "1.0"
/v1/services:
get:
parameters:
- in: query
name: addr
type: string
- in: query
name: end_time
type: integer
- in: query
name: order
type: string
- in: query
name: page
type: integer
- in: query
name: page_size
type: integer
- in: query
name: rpc
type: string
- in: query
name: service
type: string
- in: query
name: service_id
type: integer
- in: query
name: start_time
type: integer
- in: query
name: topic
type: string
responses:
"200":
description: result
schema:
$ref: '#/definitions/v1.ListServicesResponse'
summary: List Services
tags:
- "1.0"
/v1/services/{service_id}:
delete:
parameters:
- in: query
name: service_id
type: integer
responses:
"200":
description: result
schema:
$ref: '#/definitions/v1.KickServiceResponse'
summary: Kick Service
tags:
- "1.0"
get:
parameters:
- in: query
name: service_id
type: integer
responses:
"200":
description: result
schema:
$ref: '#/definitions/v1.Service'
summary: Get Service
tags:
- "1.0"
/v1/services/rpcs:
get:
parameters:
- in: query
name: end_time
type: integer
- in: query
name: order
type: string
- in: query
name: page
type: integer
- in: query
name: page_size
type: integer
- in: query
name: service
type: string
- in: query
name: service_id
type: integer
- in: query
name: start_time
type: integer
responses:
"200":
description: result
schema:
$ref: '#/definitions/v1.ListServiceRPCsResponse'
summary: List Services RPCs
tags:
- "1.0"
/v1/services/topics:
get:
parameters:
- in: query
name: end_time
type: integer
- in: query
name: order
type: string
- in: query
name: page
type: integer
- in: query
name: page_size
type: integer
- in: query
name: service
type: string
- in: query
name: service_id
type: integer
- in: query
name: start_time
type: integer
responses:
"200":
description: result
schema:
$ref: '#/definitions/v1.ListServiceTopicsResponse'
summary: List Services Topics
tags:
- "1.0"
swagger: "2.0"

View File

@@ -0,0 +1,6 @@
FROM golang:1.18-alpine
RUN go install github.com/swaggo/swag/cmd/swag@latest
WORKDIR /frontier
CMD swag init -g pkg/controlplane/service/cp_service.go --output docs/swagger/