本文档引用的文件
本文档详细记录了PAS系统的所有公共API端点,涵盖了专利管理、项目管理、查新分析和报告生成等主要功能模块。文档系统性地描述了每个RESTful API的HTTP方法、URL路径、请求参数、请求体结构和响应体结构,并提供了curl命令示例和实际的请求/响应JSON样例。
所有API端点的基础URL为:http://<服务器地址>:8879/api/xiaoshi
当前API版本为v2,所有端点均位于/api/xiaoshi路径下。
erDiagram
RESPONSE {
integer code
object data
string message
}
图源
PAS系统使用SaToken框架进行身份验证和权限控制。所有需要认证的API端点都要求在请求头中包含有效的token。
根据SaTokenConfigure.java文件,系统配置了以下认证规则:
/api/xiaoshi/**/api/xiaoshi/ws/**/api/xiaoshi/test/**/api/xiaoshi/oauth2/**/api/xiaoshi/admin/**/api/xiaoshi/common/download/api/xiaoshi/common/export所有需要认证的请求必须包含以下HTTP头:
Authorization: Bearer <token>
或
token: <token>
其中<token>是通过登录接口获取的有效认证令牌。
章节源
PAS系统使用统一的响应格式来处理成功和错误响应。所有API响应都遵循Response类的结构:
public class Response {
private Integer code;
private Object data;
private String message;
}
系统定义了多种自定义异常,通过GlobalExceptionHandler进行全局处理:
GlobalExceptionHandler中被捕获并转换为标准化的错误响应GlobalExceptionHandler类负责处理所有未捕获的异常,并返回标准化的错误响应:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value = {XiaoShiException.class})
@ResponseBody
public Response handleAllExceptions(XiaoShiException ex) {
return Response.error(ex.getErrorCode(), ex.getErrorMessage());
}
@ExceptionHandler(value = {UnLoginException.class})
@ResponseBody
public Response handleAllExceptions(UnLoginException ex) {
return Response.error("401", "未登录");
}
}
| 错误码 | 描述 | 说明 |
|---|---|---|
| 200 | 成功 | 请求成功处理 |
| 401 | 未登录 | 用户未认证或token无效 |
| 500 | 服务器错误 | 服务器内部错误 |
| 其他 | 业务错误 | 具体业务逻辑错误代码 |
章节源
/api/xiaoshi/patent/queryPatentStringRequest对象Response对象,包含Records数据curl示例
curl -X POST http://localhost:8879/api/xiaoshi/patent/queryPatent \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"query": "query string"}'
请求JSON示例
{
"query": "查询条件"
}
响应JSON示例
{
"code": 200,
"data": {
"total": 10,
"list": [...]
},
"message": "成功"
}
/api/xiaoshi/patent/selectPatentDetailPatentNoVO对象Response对象,包含PatentColumnDTO数据curl示例
curl -X POST http://localhost:8879/api/xiaoshi/patent/selectPatentDetail \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"patentNo": "CN123456789A"}'
章节源
/api/xiaoshi/patentProject/queryPatentProjectStringRequest对象Response对象,包含Records数据/api/xiaoshi/patentProject/addPatentProjectPatentProjectDTO对象Response对象,包含新增记录的ID/api/xiaoshi/patentProject/updatePatentProjectUpdatePatentProjectDTO对象Response对象,包含更新记录的ID/api/xiaoshi/patentProject/deletePatentProjectResponse对象,包含操作结果消息章节源
/api/xiaoshi/noveltyProject/addNoveltyProjectAddNoveltyProjectDTO对象Response对象,包含新增报告的ID@Data
public class AddNoveltyProjectDTO {
private String customCaseNumber;
private String innerCaseNumber;
private String applicants;
private String inventor;
private String ipr;
private String technicalContact;
private String searchUnit;
private String searchUnitContact;
private String caseName;
private String searchReviewer;
private String preliminaryConclusions;
private String ifPatentability;
private String applicationAdvice;
private String applicationRemark;
private String replenishMeans;
private String writeAdvice;
private Integer projectId;
private Integer entrustType;
private String entrustId;
private String entrustName;
private String headId;
private String departmentId;
}
curl示例
curl -X POST http://localhost:8879/api/xiaoshi/noveltyProject/addNoveltyProject \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"caseName": "查新报告1",
"applicants": "申请人A",
"inventor": "发明人B",
"projectId": 123
}'
请求JSON示例
{
"caseName": "查新报告1",
"applicants": "申请人A",
"inventor": "发明人B",
"projectId": 123,
"entrustType": 1
}
响应JSON示例
{
"code": 200,
"data": 456,
"message": "成功"
}
/api/xiaoshi/noveltyProject/queryNoveltyProjectStringRequest对象Response对象,包含Records数据/api/xiaoshi/noveltyProject/updateNoveltyProjectAddNoveltyProjectDTO对象(包含ID)Response对象,包含更新报告的ID/api/xiaoshi/noveltyProject/deleteNoveltyProjectNoveltyProjectIdDTO对象Response对象,包含操作结果消息章节源
/api/xiaoshi/reportProject/queryReportProjectStringRequest对象Response对象,包含Records数据/api/xiaoshi/reportProject/addReportProjectReportProjectDTO对象Response对象,包含新增报告的ID/api/xiaoshi/reportProject/updateReportProjectUpdateReportProjectDTO对象Response对象,包含更新报告的ID/api/xiaoshi/reportProject/deleteReportProjectResponse对象,包含操作结果消息章节源
在Constants.java中定义了系统常用常量:
public class Constants {
public static final String API_XiaoSHI = "/api/xiaoshi";
public static final String ADMIN_USERNAME = "admin";
public static final String PROJECT_INFO_FILE_NAME = "project.json";
// ... 其他常量
}
ResponseEnum类定义了系统响应码和消息:
public enum ResponseEnum {
SUCCESS(200, "成功"),
ERROR(500, "失败"),
UNAUTHORIZED(401, "未登录"),
NO_PERMISSION(403, "无权限"),
CONDITION_ERROR(400, "条件错误");
private final Integer code;
private final String message;
ResponseEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
// getter方法
}
章节源