{
  "openapi": "3.1.0",
  "info": {
    "title": "法条核验台 API",
    "version": "1.0.0",
    "description": "从预先抓取、结构化并留痕的权威来源数据中精确查询中国法律条文。本站为非官方辅助核验工具。"
  },
  "servers": [
    {
      "url": "/",
      "description": "当前部署"
    }
  ],
  "paths": {
    "/api/v1/article": {
      "get": {
        "operationId": "verifyLawArticle",
        "summary": "精确查询法规条文",
        "parameters": [
          {
            "name": "law",
            "in": "query",
            "required": true,
            "description": "法规官方全称；可接受已收录的无歧义简称。",
            "schema": {
              "type": "string",
              "maxLength": 120
            },
            "example": "中华人民共和国民法典"
          },
          {
            "name": "article",
            "in": "query",
            "required": true,
            "description": "中文或阿拉伯数字条号。",
            "schema": {
              "type": "string",
              "maxLength": 40
            },
            "example": "第一千零四十六条"
          }
        ],
        "responses": {
          "200": {
            "description": "找到唯一法规及条文。",
            "headers": {
              "ETag": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArticleResponse"
                }
              }
            }
          },
          "300": {
            "description": "法规名称存在歧义，返回候选项。"
          },
          "400": {
            "description": "缺少参数。"
          },
          "404": {
            "description": "法规或条文未收录。"
          },
          "422": {
            "description": "条号格式错误或参数过长。"
          },
          "503": {
            "description": "数据文件暂不可用。"
          }
        }
      }
    },
    "/api/v1/laws/suggest": {
      "get": {
        "operationId": "suggestLaws",
        "summary": "按名称查找候选法规",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "候选法规列表。"
          }
        }
      }
    },
    "/api/v1/health": {
      "get": {
        "operationId": "health",
        "summary": "获取服务及数据集状态",
        "responses": {
          "200": {
            "description": "服务与数据集可用。"
          },
          "503": {
            "description": "数据集尚未构建。"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ArticleResponse": {
        "type": "object",
        "required": [
          "code",
          "provider",
          "dataset_version",
          "law",
          "data"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "const": 200
          },
          "provider": {
            "type": "string"
          },
          "dataset_version": {
            "type": "string"
          },
          "storage": {
            "type": "string",
            "enum": [
              "static-asset",
              "edgeone-kv"
            ]
          },
          "law": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "sourceUrl": {
                "type": "string",
                "format": "uri"
              },
              "sourceFileHash": {
                "type": "string"
              },
              "checkedAt": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "data": {
            "type": "object",
            "required": [
              "article_number",
              "content",
              "hash"
            ],
            "properties": {
              "part": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "chapter": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "section": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "article_number": {
                "type": "string"
              },
              "content": {
                "type": "string"
              },
              "hash": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}
