fix:提交到整个项目能跑通,有几个接口不标准
This commit is contained in:
50
docs/problem_fix/03-fix-doing/07-get-crosses.md
Normal file
50
docs/problem_fix/03-fix-doing/07-get-crosses.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# GET /crosses
|
||||
|
||||
> 来源:BrAPI v2.1 校验报告(03-fix.md)
|
||||
|
||||
## 概要
|
||||
|
||||
| 项 | 值 |
|
||||
| --- | --- |
|
||||
| 状态 | warning |
|
||||
| 方法 | GET |
|
||||
| URL | `/brapi/v2/crosses` |
|
||||
| 完整 URL | `http://localhost:8081/brapi/v2/crosses` |
|
||||
| 路径模板 | `GET /crosses` |
|
||||
| 模块 | Crosses |
|
||||
| 响应时间 | 18958 ms |
|
||||
|
||||
## 校验详情
|
||||
|
||||
```
|
||||
GET /crosses
|
||||
Crosses
|
||||
18958 ms
|
||||
schema mismatch
|
||||
schema mismatch
|
||||
Json matches schema: schemas/v2.1/metadata.json (schema mismatch) — Schema: schemas/v2.1/metadata.json
|
||||
Server response is not valid JSON.
|
||||
Json matches schema: schemas/v2.1/Crosses/getCrossesResponse.json (schema mismatch) — Schema: schemas/v2.1/Crosses/getCrossesResponse.json
|
||||
Server response is not valid JSON.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 修复说明
|
||||
|
||||
- **根因**:
|
||||
- `additional_info.value` 中 Java 序列化的 `Boolean.TRUE` 经 `getAdditionalInfoMap()` 直接输出为 JSON boolean,违反 BrAPI schema(`additionalInfo` 值须为 string)。
|
||||
- 匿名请求的 metadata 写入 `Long.MAX_VALUE` 对应的 token 过期 WARNING(年份溢出),导致 `metadata.json` 校验失败。
|
||||
- 响应体含 `"@context": null`,严格 schema 校验不接受。
|
||||
- `GET /crosses` 列表查询存在 N+1 懒加载,响应耗时过长(~19s),校验器易超时并报告 not valid JSON。
|
||||
- **修复**:
|
||||
- `BrAPIPrimaryEntity.getAdditionalInfoMap()` 使用 `String.valueOf()` 统一转为字符串(共用修复)。
|
||||
- `BrAPIController.getStatusMessages()` 匿名用户跳过 token WARNING,且忽略超出合理范围(>2100 年)的过期时间。
|
||||
- `BrApiJacksonConfig` + `BrApiJsonResponseAdvice` 序列化时省略 null 字段(如 `@context`)。
|
||||
- `CrossService.prefetchAssociations()` 用 JOIN FETCH 批量预加载 crossingProject、parents、pollinationEvents 等关联,消除 N+1 查询。
|
||||
- `CrossService.convertFromEntity()` 对缺少 `:` 的 crossAttributes 做安全解析,避免 500 纯文本错误响应。
|
||||
- **验证**:`GET /brapi/v2/crosses` 响应可正常解析为 JSON;`additionalInfo.dummyData` 为字符串;无 `@context: null`;cross1 等种子数据字段完整。
|
||||
|
||||
---
|
||||
|
||||
**状态:已完成**
|
||||
Reference in New Issue
Block a user