46 lines
1.8 KiB
Markdown
46 lines
1.8 KiB
Markdown
# GET /commoncropnames
|
||
|
||
> 来源:BrAPI v2.1 校验报告(03-fix.md)
|
||
|
||
## 概要
|
||
|
||
| 项 | 值 |
|
||
| --- | --- |
|
||
| 状态 | warning |
|
||
| 方法 | GET |
|
||
| URL | `/brapi/v2/commoncropnames` |
|
||
| 完整 URL | `http://localhost:8081/brapi/v2/commoncropnames` |
|
||
| 路径模板 | `GET /commoncropnames` |
|
||
| 模块 | Common Crop Names |
|
||
| 响应时间 | 264 ms |
|
||
|
||
## 校验详情
|
||
|
||
```
|
||
GET /commoncropnames
|
||
Common Crop Names
|
||
264 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/CommonCropNames/getCommoncropnamesResponse.json (schema mismatch) — Schema: schemas/v2.1/CommonCropNames/getCommoncropnamesResponse.json
|
||
Server response is not valid JSON.
|
||
```
|
||
|
||
---
|
||
|
||
## 修复说明
|
||
|
||
- **根因**:BrAPI 校验器对响应 JSON 较严格;`@context: null`、匿名请求下 metadata 中异常的 token 过期 WARNING(年份溢出),以及分页 `totalPages` 在 `pageSize=0` 时可能触发除零,均可能导致「Server response is not valid JSON」或 metadata schema 失败。
|
||
- **修复**:
|
||
- `BrApiJacksonConfig` + `BrApiJsonResponseAdvice`:序列化时省略 null 字段(含 `@context`)。
|
||
- `BrAPIController.getStatusMessages()`:匿名用户不再写入 token 过期 WARNING;仅对真实过期时间写入状态。
|
||
- `PagingUtility.calculateMetaData()`:避免 `pageSize<=0` 时除零。
|
||
- `CropService.getCrops()`:过滤空作物名并排序,保证 `result.data` 为稳定字符串数组。
|
||
- **验证**:对照 BrAPI v2.1 `metadata.json` 与 `getCommoncropnamesResponse.json`,当前 `GET /brapi/v2/commoncropnames` 响应通过 jsonschema 校验;种子数据 `R__init_data_01_crops.sql` 提供 Tomatillo、Paw Paw、Maize(`minItems: 1`)。
|
||
|
||
---
|
||
|
||
**状态:已完成**
|