api-docs.yaml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  1. openapi: 3.0.0
  2. info:
  3. title: 飞鸟农业API文档
  4. version: 1.0.0
  5. description: 飞鸟农业平台后端API接口文档
  6. servers:
  7. - url: http://localhost:3000
  8. description: 开发环境
  9. paths:
  10. /admin/articles:
  11. get:
  12. tags:
  13. - Articles
  14. summary: GetArticles
  15. description: 获取文章列表,支持分页和多条件筛选
  16. parameters:
  17. - name: currentPage=1
  18. in: query
  19. required: false
  20. schema:
  21. type: number
  22. description: 当前页码,默认为1
  23. - name: pageSize=10
  24. in: query
  25. required: false
  26. schema:
  27. type: number
  28. description: 每页显示数量,默认为10
  29. - name: title
  30. in: query
  31. required: false
  32. schema:
  33. type: string
  34. description: 标题搜索关键词(模糊匹配)
  35. - name: cropIds
  36. in: query
  37. required: false
  38. schema:
  39. type: string|array
  40. description: 作物筛选ID,支持逗号分隔的多个ID或数组形式
  41. - name: categoryId
  42. in: query
  43. required: false
  44. schema:
  45. type: number
  46. description: 用户分类ID,根据用户传递的category参数值进行精确匹配
  47. - name: isRecommended
  48. in: query
  49. required: false
  50. schema:
  51. type: number
  52. description: 推荐筛选,0-非推荐文章,1-推荐文章
  53. responses:
  54. '200':
  55. description: 成功响应
  56. content:
  57. application/json:
  58. schema:
  59. $ref: '#/components/schemas/ApiResponse'
  60. '400':
  61. description: 请求参数错误
  62. content:
  63. application/json:
  64. schema:
  65. $ref: '#/components/schemas/ApiResponse'
  66. '404':
  67. description: 资源未找到
  68. content:
  69. application/json:
  70. schema:
  71. $ref: '#/components/schemas/ApiResponse'
  72. '500':
  73. description: 服务器内部错误
  74. content:
  75. application/json:
  76. schema:
  77. $ref: '#/components/schemas/ApiResponse'
  78. post:
  79. tags:
  80. - Articles
  81. summary: CreateArticle
  82. description: 创建新的文章,支持富文本内容和图片
  83. parameters:
  84. - name: title
  85. in: query
  86. required: true
  87. schema:
  88. type: string
  89. description: 文章标题(必填,1-500字符)
  90. - name: content
  91. in: query
  92. required: true
  93. schema:
  94. type: string
  95. description: 文章内容(必填,富文本格式,最大5MB)
  96. - name: type
  97. in: query
  98. required: false
  99. schema:
  100. type: number
  101. description: 文章类型
  102. - name: img
  103. in: query
  104. required: false
  105. schema:
  106. type: string
  107. description: 文章图片URL
  108. - name: date
  109. in: query
  110. required: false
  111. schema:
  112. type: date
  113. description: 文章发布日期
  114. - name: author
  115. in: query
  116. required: false
  117. schema:
  118. type: string
  119. description: 作者
  120. - name: category
  121. in: query
  122. required: false
  123. schema:
  124. type: number
  125. description: 用户分类ID(用户传递的参数)
  126. - name: crop
  127. in: query
  128. required: false
  129. schema:
  130. type: number
  131. description: 作物分类ID
  132. - name: isRecommended=0
  133. in: query
  134. required: false
  135. schema:
  136. type: number
  137. description: 是否推荐,0-不推荐,1-推荐
  138. - name: subtitle
  139. in: query
  140. required: false
  141. schema:
  142. type: string
  143. description: 副标题(最大200字符)
  144. - name: seoKeyword
  145. in: query
  146. required: false
  147. schema:
  148. type: string
  149. description: SEO关键词
  150. - name: seoDescription
  151. in: query
  152. required: false
  153. schema:
  154. type: string
  155. description: SEO描述
  156. responses:
  157. '200':
  158. description: 成功响应
  159. content:
  160. application/json:
  161. schema:
  162. $ref: '#/components/schemas/ApiResponse'
  163. '400':
  164. description: 请求参数错误
  165. content:
  166. application/json:
  167. schema:
  168. $ref: '#/components/schemas/ApiResponse'
  169. '404':
  170. description: 资源未找到
  171. content:
  172. application/json:
  173. schema:
  174. $ref: '#/components/schemas/ApiResponse'
  175. '500':
  176. description: 服务器内部错误
  177. content:
  178. application/json:
  179. schema:
  180. $ref: '#/components/schemas/ApiResponse'
  181. requestBody:
  182. required: true
  183. content:
  184. application/json:
  185. schema:
  186. $ref: '#/components/schemas/Article'
  187. /admin/articles/:id:
  188. get:
  189. tags:
  190. - Articles
  191. summary: GetArticleById
  192. description: 根据文章ID获取文章详细信息
  193. parameters:
  194. - name: id
  195. in: query
  196. required: true
  197. schema:
  198. type: number
  199. description: 文章ID(路径参数)
  200. responses:
  201. '200':
  202. description: 成功响应
  203. content:
  204. application/json:
  205. schema:
  206. $ref: '#/components/schemas/ApiResponse'
  207. '400':
  208. description: 请求参数错误
  209. content:
  210. application/json:
  211. schema:
  212. $ref: '#/components/schemas/ApiResponse'
  213. '404':
  214. description: 资源未找到
  215. content:
  216. application/json:
  217. schema:
  218. $ref: '#/components/schemas/ApiResponse'
  219. '500':
  220. description: 服务器内部错误
  221. content:
  222. application/json:
  223. schema:
  224. $ref: '#/components/schemas/ApiResponse'
  225. delete:
  226. tags:
  227. - Articles
  228. summary: DeleteArticle
  229. description: 根据文章ID删除文章
  230. parameters:
  231. - name: id
  232. in: query
  233. required: true
  234. schema:
  235. type: number
  236. description: 文章ID(路径参数)
  237. responses:
  238. '200':
  239. description: 成功响应
  240. content:
  241. application/json:
  242. schema:
  243. $ref: '#/components/schemas/ApiResponse'
  244. '400':
  245. description: 请求参数错误
  246. content:
  247. application/json:
  248. schema:
  249. $ref: '#/components/schemas/ApiResponse'
  250. '404':
  251. description: 资源未找到
  252. content:
  253. application/json:
  254. schema:
  255. $ref: '#/components/schemas/ApiResponse'
  256. '500':
  257. description: 服务器内部错误
  258. content:
  259. application/json:
  260. schema:
  261. $ref: '#/components/schemas/ApiResponse'
  262. put:
  263. tags:
  264. - Articles
  265. summary: UpdateArticle
  266. description: 根据文章ID更新文章信息
  267. parameters:
  268. - name: id
  269. in: query
  270. required: true
  271. schema:
  272. type: number
  273. description: 文章ID(路径参数)
  274. - name: title
  275. in: query
  276. required: false
  277. schema:
  278. type: string
  279. description: 文章标题(1-500字符)
  280. - name: content
  281. in: query
  282. required: false
  283. schema:
  284. type: string
  285. description: 文章内容(富文本格式,最大5MB)
  286. - name: type
  287. in: query
  288. required: false
  289. schema:
  290. type: number
  291. description: 文章类型
  292. - name: img
  293. in: query
  294. required: false
  295. schema:
  296. type: string
  297. description: 文章图片URL
  298. - name: date
  299. in: query
  300. required: false
  301. schema:
  302. type: date
  303. description: 文章发布日期
  304. - name: author
  305. in: query
  306. required: false
  307. schema:
  308. type: string
  309. description: 作者
  310. - name: category
  311. in: query
  312. required: false
  313. schema:
  314. type: number
  315. description: 用户分类ID
  316. - name: crop
  317. in: query
  318. required: false
  319. schema:
  320. type: number
  321. description: 作物分类ID
  322. - name: isRecommended
  323. in: query
  324. required: false
  325. schema:
  326. type: number
  327. description: 是否推荐,0-不推荐,1-推荐
  328. - name: subtitle
  329. in: query
  330. required: false
  331. schema:
  332. type: string
  333. description: 副标题(最大200字符)
  334. - name: seoKeyword
  335. in: query
  336. required: false
  337. schema:
  338. type: string
  339. description: SEO关键词
  340. - name: seoDescription
  341. in: query
  342. required: false
  343. schema:
  344. type: string
  345. description: SEO描述
  346. responses:
  347. '200':
  348. description: 成功响应
  349. content:
  350. application/json:
  351. schema:
  352. $ref: '#/components/schemas/ApiResponse'
  353. '400':
  354. description: 请求参数错误
  355. content:
  356. application/json:
  357. schema:
  358. $ref: '#/components/schemas/ApiResponse'
  359. '404':
  360. description: 资源未找到
  361. content:
  362. application/json:
  363. schema:
  364. $ref: '#/components/schemas/ApiResponse'
  365. '500':
  366. description: 服务器内部错误
  367. content:
  368. application/json:
  369. schema:
  370. $ref: '#/components/schemas/ApiResponse'
  371. requestBody:
  372. required: true
  373. content:
  374. application/json:
  375. schema:
  376. $ref: '#/components/schemas/Article'
  377. components:
  378. schemas:
  379. Article:
  380. type: object
  381. properties:
  382. id:
  383. type: integer
  384. description: 文章ID
  385. title:
  386. type: string
  387. description: 文章标题
  388. subtitle:
  389. type: string
  390. description: 文章副标题
  391. content:
  392. type: string
  393. description: 文章内容
  394. type:
  395. type: integer
  396. description: 文章类型
  397. img:
  398. type: string
  399. description: 文章图片URL
  400. date:
  401. type: string
  402. format: date-time
  403. description: 文章日期
  404. author:
  405. type: string
  406. description: 作者
  407. category:
  408. type: integer
  409. description: 用户分类ID
  410. crop:
  411. type: integer
  412. description: 作物分类ID
  413. isRecommended:
  414. type: integer
  415. enum:
  416. - 0
  417. - 1
  418. description: 是否推荐
  419. seoKeyword:
  420. type: string
  421. description: SEO关键词
  422. seoDescription:
  423. type: string
  424. description: SEO描述
  425. createdAt:
  426. type: string
  427. format: date-time
  428. description: 创建时间
  429. updatedAt:
  430. type: string
  431. format: date-time
  432. description: 更新时间
  433. cropInfo:
  434. type: object
  435. properties:
  436. id:
  437. type: integer
  438. description: 作物ID
  439. name:
  440. type: string
  441. description: 作物名称
  442. level:
  443. type: integer
  444. description: 作物层级
  445. parentId:
  446. type: integer
  447. description: 父级作物ID
  448. ApiResponse:
  449. type: object
  450. properties:
  451. status:
  452. type: boolean
  453. description: 请求状态
  454. message:
  455. type: string
  456. description: 响应消息
  457. data:
  458. type: object
  459. description: 响应数据
  460. errors:
  461. type: array
  462. items:
  463. type: string
  464. description: 错误信息