diff --git a/backend/docs/docs.go b/backend/docs/docs.go index dd224d3..1ecd82e 100644 --- a/backend/docs/docs.go +++ b/backend/docs/docs.go @@ -332,7 +332,7 @@ const docTemplate = `{ // SwaggerInfo holds exported Swagger Info so clients can modify it var SwaggerInfo = &swag.Spec{ Version: "1.0.0", - Host: "localhost:8080", + Host: "localhost:3001", BasePath: "/", Schemes: []string{}, Title: "知识图谱 API", diff --git a/backend/docs/swagger.json b/backend/docs/swagger.json index 6acd2e7..ac93659 100644 --- a/backend/docs/swagger.json +++ b/backend/docs/swagger.json @@ -1,324 +1,314 @@ { - "swagger": "2.0", - "info": { - "description": "知识图谱后端服务,提供图数据查询、节点搜索等功能", - "title": "知识图谱 API", - "contact": {}, - "version": "1.0.0" - }, - "host": "localhost:8080", - "basePath": "/", - "paths": { - "/api/graph": { - "get": { - "description": "获取知识图谱的全部节点和边数据", - "produces": [ - "application/json" - ], - "summary": "获取图数据", - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/models.GraphData" - } - }, - "500": { - "description": "内部错误", - "schema": { - "$ref": "#/definitions/models.ErrorResponse" - } - } - } + "swagger": "2.0", + "info": { + "description": "知识图谱后端服务,提供图数据查询、节点搜索等功能", + "title": "知识图谱 API", + "contact": {}, + "version": "1.0.0" + }, + "host": "localhost:3001", + "basePath": "/", + "paths": { + "/api/graph": { + "get": { + "description": "获取知识图谱的全部节点和边数据", + "produces": ["application/json"], + "summary": "获取图数据", + "responses": { + "200": { + "description": "成功", + "schema": { + "$ref": "#/definitions/models.GraphData" } - }, - "/api/graph/stats": { - "get": { - "description": "获取知识图谱的节点数、边数等统计信息", - "produces": [ - "application/json" - ], - "summary": "获取图统计信息", - "responses": { - "200": { - "description": "成功", - "schema": { - "type": "object", - "additionalProperties": true - } - }, - "500": { - "description": "内部错误", - "schema": { - "$ref": "#/definitions/models.ErrorResponse" - } - } - } - } - }, - "/api/nodes/{id}": { - "get": { - "description": "根据节点 ID 获取知识图谱中的节点详细信息", - "produces": [ - "application/json" - ], - "summary": "获取节点详情", - "parameters": [ - { - "type": "string", - "description": "节点 ID", - "name": "id", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/models.NodeResponse" - } - }, - "400": { - "description": "请求错误", - "schema": { - "$ref": "#/definitions/models.ErrorResponse" - } - }, - "404": { - "description": "节点未找到", - "schema": { - "$ref": "#/definitions/models.ErrorResponse" - } - }, - "500": { - "description": "内部错误", - "schema": { - "$ref": "#/definitions/models.ErrorResponse" - } - } - } - } - }, - "/api/nodes/{id}/neighbors": { - "get": { - "description": "根据节点 ID 获取其所有邻居节点及关联边", - "produces": [ - "application/json" - ], - "summary": "获取节点邻居", - "parameters": [ - { - "type": "string", - "description": "节点 ID", - "name": "id", - "in": "path", - "required": true - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/models.NeighborResponse" - } - }, - "400": { - "description": "请求错误", - "schema": { - "$ref": "#/definitions/models.ErrorResponse" - } - }, - "404": { - "description": "节点未找到", - "schema": { - "$ref": "#/definitions/models.ErrorResponse" - } - }, - "500": { - "description": "内部错误", - "schema": { - "$ref": "#/definitions/models.ErrorResponse" - } - } - } - } - }, - "/api/search": { - "get": { - "description": "根据关键词搜索知识图谱中的节点", - "produces": [ - "application/json" - ], - "summary": "搜索节点", - "parameters": [ - { - "type": "string", - "description": "搜索关键词", - "name": "q", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/models.SearchResponse" - } - }, - "400": { - "description": "请求错误", - "schema": { - "$ref": "#/definitions/models.ErrorResponse" - } - }, - "500": { - "description": "内部错误", - "schema": { - "$ref": "#/definitions/models.ErrorResponse" - } - } - } + }, + "500": { + "description": "内部错误", + "schema": { + "$ref": "#/definitions/models.ErrorResponse" } + } } + } }, - "definitions": { - "models.Edge": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "label": { - "type": "string" - }, - "properties": { - "type": "object", - "additionalProperties": true - }, - "source": { - "type": "string" - }, - "style": { - "type": "object", - "additionalProperties": true - }, - "target": { - "type": "string" - }, - "type": { - "type": "string" - } + "/api/graph/stats": { + "get": { + "description": "获取知识图谱的节点数、边数等统计信息", + "produces": ["application/json"], + "summary": "获取图统计信息", + "responses": { + "200": { + "description": "成功", + "schema": { + "type": "object", + "additionalProperties": true } - }, - "models.ErrorResponse": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - } - }, - "models.GraphData": { - "type": "object", - "properties": { - "edges": { - "type": "array", - "items": { - "$ref": "#/definitions/models.Edge" - } - }, - "nodes": { - "type": "array", - "items": { - "$ref": "#/definitions/models.Node" - } - } - } - }, - "models.NeighborResponse": { - "type": "object", - "properties": { - "edges": { - "type": "array", - "items": { - "$ref": "#/definitions/models.Edge" - } - }, - "nodes": { - "type": "array", - "items": { - "$ref": "#/definitions/models.Node" - } - } - } - }, - "models.Node": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "label": { - "type": "string" - }, - "properties": { - "type": "object", - "additionalProperties": true - }, - "style": { - "type": "object", - "additionalProperties": true - }, - "type": { - "type": "string" - }, - "x": { - "type": "number" - }, - "y": { - "type": "number" - } - } - }, - "models.NodeResponse": { - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "1" - }, - "label": { - "type": "string", - "example": "人工智能" - }, - "properties": { - "type": "object", - "additionalProperties": true - }, - "type": { - "type": "string", - "example": "概念" - } - } - }, - "models.SearchResponse": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/models.Node" - } - } + }, + "500": { + "description": "内部错误", + "schema": { + "$ref": "#/definitions/models.ErrorResponse" } + } } + } + }, + "/api/nodes/{id}": { + "get": { + "description": "根据节点 ID 获取知识图谱中的节点详细信息", + "produces": ["application/json"], + "summary": "获取节点详情", + "parameters": [ + { + "type": "string", + "description": "节点 ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "成功", + "schema": { + "$ref": "#/definitions/models.NodeResponse" + } + }, + "400": { + "description": "请求错误", + "schema": { + "$ref": "#/definitions/models.ErrorResponse" + } + }, + "404": { + "description": "节点未找到", + "schema": { + "$ref": "#/definitions/models.ErrorResponse" + } + }, + "500": { + "description": "内部错误", + "schema": { + "$ref": "#/definitions/models.ErrorResponse" + } + } + } + } + }, + "/api/nodes/{id}/neighbors": { + "get": { + "description": "根据节点 ID 获取其所有邻居节点及关联边", + "produces": ["application/json"], + "summary": "获取节点邻居", + "parameters": [ + { + "type": "string", + "description": "节点 ID", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "成功", + "schema": { + "$ref": "#/definitions/models.NeighborResponse" + } + }, + "400": { + "description": "请求错误", + "schema": { + "$ref": "#/definitions/models.ErrorResponse" + } + }, + "404": { + "description": "节点未找到", + "schema": { + "$ref": "#/definitions/models.ErrorResponse" + } + }, + "500": { + "description": "内部错误", + "schema": { + "$ref": "#/definitions/models.ErrorResponse" + } + } + } + } + }, + "/api/search": { + "get": { + "description": "根据关键词搜索知识图谱中的节点", + "produces": ["application/json"], + "summary": "搜索节点", + "parameters": [ + { + "type": "string", + "description": "搜索关键词", + "name": "q", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "成功", + "schema": { + "$ref": "#/definitions/models.SearchResponse" + } + }, + "400": { + "description": "请求错误", + "schema": { + "$ref": "#/definitions/models.ErrorResponse" + } + }, + "500": { + "description": "内部错误", + "schema": { + "$ref": "#/definitions/models.ErrorResponse" + } + } + } + } } -} \ No newline at end of file + }, + "definitions": { + "models.Edge": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": true + }, + "source": { + "type": "string" + }, + "style": { + "type": "object", + "additionalProperties": true + }, + "target": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "models.ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "models.GraphData": { + "type": "object", + "properties": { + "edges": { + "type": "array", + "items": { + "$ref": "#/definitions/models.Edge" + } + }, + "nodes": { + "type": "array", + "items": { + "$ref": "#/definitions/models.Node" + } + } + } + }, + "models.NeighborResponse": { + "type": "object", + "properties": { + "edges": { + "type": "array", + "items": { + "$ref": "#/definitions/models.Edge" + } + }, + "nodes": { + "type": "array", + "items": { + "$ref": "#/definitions/models.Node" + } + } + } + }, + "models.Node": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": true + }, + "style": { + "type": "object", + "additionalProperties": true + }, + "type": { + "type": "string" + }, + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + } + }, + "models.NodeResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "1" + }, + "label": { + "type": "string", + "example": "人工智能" + }, + "properties": { + "type": "object", + "additionalProperties": true + }, + "type": { + "type": "string", + "example": "概念" + } + } + }, + "models.SearchResponse": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/models.Node" + } + } + } + } + } +} diff --git a/backend/docs/swagger.yaml b/backend/docs/swagger.yaml index 1012c9b..6879bb1 100644 --- a/backend/docs/swagger.yaml +++ b/backend/docs/swagger.yaml @@ -30,22 +30,22 @@ definitions: properties: edges: items: - $ref: '#/definitions/models.Edge' + $ref: "#/definitions/models.Edge" type: array nodes: items: - $ref: '#/definitions/models.Node' + $ref: "#/definitions/models.Node" type: array type: object models.NeighborResponse: properties: edges: items: - $ref: '#/definitions/models.Edge' + $ref: "#/definitions/models.Edge" type: array nodes: items: - $ref: '#/definitions/models.Node' + $ref: "#/definitions/models.Node" type: array type: object models.Node: @@ -88,10 +88,10 @@ definitions: type: integer results: items: - $ref: '#/definitions/models.Node' + $ref: "#/definitions/models.Node" type: array type: object -host: localhost:8080 +host: localhost:3001 info: contact: {} description: 知识图谱后端服务,提供图数据查询、节点搜索等功能 @@ -102,22 +102,22 @@ paths: get: description: 获取知识图谱的全部节点和边数据 produces: - - application/json + - application/json responses: "200": description: 成功 schema: - $ref: '#/definitions/models.GraphData' + $ref: "#/definitions/models.GraphData" "500": description: 内部错误 schema: - $ref: '#/definitions/models.ErrorResponse' + $ref: "#/definitions/models.ErrorResponse" summary: 获取图数据 /api/graph/stats: get: description: 获取知识图谱的节点数、边数等统计信息 produces: - - application/json + - application/json responses: "200": description: 成功 @@ -127,89 +127,89 @@ paths: "500": description: 内部错误 schema: - $ref: '#/definitions/models.ErrorResponse' + $ref: "#/definitions/models.ErrorResponse" summary: 获取图统计信息 /api/nodes/{id}: get: description: 根据节点 ID 获取知识图谱中的节点详细信息 parameters: - - description: 节点 ID - in: path - name: id - required: true - type: string + - description: 节点 ID + in: path + name: id + required: true + type: string produces: - - application/json + - application/json responses: "200": description: 成功 schema: - $ref: '#/definitions/models.NodeResponse' + $ref: "#/definitions/models.NodeResponse" "400": description: 请求错误 schema: - $ref: '#/definitions/models.ErrorResponse' + $ref: "#/definitions/models.ErrorResponse" "404": description: 节点未找到 schema: - $ref: '#/definitions/models.ErrorResponse' + $ref: "#/definitions/models.ErrorResponse" "500": description: 内部错误 schema: - $ref: '#/definitions/models.ErrorResponse' + $ref: "#/definitions/models.ErrorResponse" summary: 获取节点详情 /api/nodes/{id}/neighbors: get: description: 根据节点 ID 获取其所有邻居节点及关联边 parameters: - - description: 节点 ID - in: path - name: id - required: true - type: string + - description: 节点 ID + in: path + name: id + required: true + type: string produces: - - application/json + - application/json responses: "200": description: 成功 schema: - $ref: '#/definitions/models.NeighborResponse' + $ref: "#/definitions/models.NeighborResponse" "400": description: 请求错误 schema: - $ref: '#/definitions/models.ErrorResponse' + $ref: "#/definitions/models.ErrorResponse" "404": description: 节点未找到 schema: - $ref: '#/definitions/models.ErrorResponse' + $ref: "#/definitions/models.ErrorResponse" "500": description: 内部错误 schema: - $ref: '#/definitions/models.ErrorResponse' + $ref: "#/definitions/models.ErrorResponse" summary: 获取节点邻居 /api/search: get: description: 根据关键词搜索知识图谱中的节点 parameters: - - description: 搜索关键词 - in: query - name: q - required: true - type: string + - description: 搜索关键词 + in: query + name: q + required: true + type: string produces: - - application/json + - application/json responses: "200": description: 成功 schema: - $ref: '#/definitions/models.SearchResponse' + $ref: "#/definitions/models.SearchResponse" "400": description: 请求错误 schema: - $ref: '#/definitions/models.ErrorResponse' + $ref: "#/definitions/models.ErrorResponse" "500": description: 内部错误 schema: - $ref: '#/definitions/models.ErrorResponse' + $ref: "#/definitions/models.ErrorResponse" summary: 搜索节点 swagger: "2.0" diff --git a/backend/main.go b/backend/main.go index 029e696..6b58861 100644 --- a/backend/main.go +++ b/backend/main.go @@ -20,7 +20,7 @@ import ( // @title 知识图谱 API // @version 1.0.0 // @description 知识图谱后端服务,提供图数据查询、节点搜索等功能 -// @host localhost:8080 +// @host localhost:3001 // @BasePath / func main() { cfg, err := config.Load()