project content / request 接口调整 (2026-03-24)
接口变更
content
POST /api/content/projects/list- 功能:获取公开 project 列表
- 变更:新增关键字、分类、画风、发布者、价格区间、排序等筛选参数;排序支持
latest、deadline、most_applicants、highest_budget
GET /api/content/projects/filters- 功能:获取 project 筛选项元数据
- 变更:新增接口,返回
categories和art_styles
GET /api/content/projects/info- 功能:获取公开 project 详情
- 变更:直接返回
color_mode、size_spec、prod_format,其中prod_format与 service 一致为数组;不再返回旧的formats、colorModels;data.user新增简介、评价、语言、timezone 信息;匿名应征不再出现在project_requests中,改为返回hidden_project_requests_count
user
POST /api/projects/create- 功能:创建 project
- 变更:正式使用
color_mode、size_spec字符串字段,以及prod_format数组字段
POST /api/projects/update- 功能:更新 project
- 变更:正式使用
color_mode、size_spec字符串字段,以及prod_format数组字段
GET /api/projects/info- 功能:获取当前用户的 project 详情
- 变更:直接返回
color_mode、size_spec、prod_format,其中prod_format为数组;不再返回旧的formats、colorModels
GET /api/projects/meta- 功能:获取 project 表单元数据
- 变更:不再返回
formats、color_models、use_ranges、translations
POST /api/project_requests/requested_list- 功能:获取当前用户 project 的应征列表
- 变更:返回中的
artist新增languages
POST /api/project_requests/choosed_list- 功能:获取当前用户已选中的应征列表
- 变更:返回中的
artist新增languages
POST /api/project_requests/choose- 功能:选择某个 project 应征并创建 worktask
- 变更:创建 project 来源 worktask 时会生成
project_snap,并将 project / project_request 快照写入busable_snap、reqable_snap
POST /api/work_tasks/list- 功能:获取当前用户 worktask 列表
- 变更:project 来源 worktask 的
reqable改为返回project_snap,不再依赖 service request 专属字段
GET /api/work_tasks/info- 功能:获取当前用户 worktask 详情
- 变更:project 来源 worktask 的
reqable改为返回project_snap,并补充 project request 的币种、作品附件等信息
POST /api/artist_rec_reviews/create_work_task_review- 功能:用户对 worktask 中的 artist 发起评价
- 变更:project 来源 worktask 的评价会将
bizable_type写为project_snap
artist_center
POST /api/artist_center/project_request/create- 功能:artist 对 project 发起应征
- 变更:新增
is_anonymous;创建后会为detail自动创建翻译记录
POST /api/artist_center/project_request/list- 功能:artist 获取自己的 project 应征列表
- 变更:列表对象显式返回
is_anonymous
POST /api/artist_center/project_request/list_by_chosen- 功能:artist 获取自己被选中的 project 应征列表
- 变更:列表对象显式返回
is_anonymous
POST /api/artist_center/work_tasks/list- 功能:artist 获取自己的 worktask 列表
- 变更:project 来源 worktask 的
reqable改为返回project_snap,不再依赖 service request 专属字段
GET /api/artist_center/work_tasks/info- 功能:artist 获取自己的 worktask 详情
- 变更:project 来源 worktask 的
reqable改为返回project_snap,并补充 project request 的币种、作品附件等信息
POST /api/artist_center/user_rec_reviews/create_work_task_review- 功能:artist 对 worktask 中的 user 发起评价
- 变更:
type仅支持真实业务值service、project;project 来源 worktask 的评价会将bizable_type写为project_snap
接口示例
content
POST /api/content/projects/list
- 功能说明:获取公开 project 列表。
- 变更说明:新增关键字、分类、画风、发布者、价格区间、排序等筛选参数;价格筛选按 project 预算区间与筛选区间是否有交集来判断命中。
请求参数
其他校验规则
page >= 1size >= 1 && size <= 50category_ids.*必须存在于categories.idart_style_ids.*必须存在于art_styles.idprice_currency_id必须存在于currencies.idprice_from >= 0price_to >= 0order_by仅支持latest、deadline、most_applicants、highest_budget- 各排序规则如下:
latest:按id descdeadline:按deadline asc,同值再按id descmost_applicants:按project_requests_count desc,同值再按id deschighest_budget:按price_end desc,同值再按id desc
- 当同时传
price_from和price_to时,筛选逻辑为:- project 的
[price_start, price_end]与筛选区间[price_from, price_to]有交集才命中
- project 的
请求示例
响应示例
错误响应
422:参数校验失败
GET /api/content/projects/filters
- 功能说明:获取公开 project 列表筛选项。
- 变更说明:新增接口,统一返回 project 的分类与画风筛选项。
请求参数
- 无
其他校验规则
- 无
请求示例
响应示例
错误响应
- 无新增,沿用原有错误语义。
GET /api/content/projects/info
- 功能说明:获取公开 project 详情。
- 变更说明:直接返回
color_mode、size_spec、prod_format,其中prod_format与 service 一致为数组;不再返回旧的formats、colorModels;data.user新增intro、评价、语言、timezone 信息;匿名应征不再出现在project_requests,改为返回hidden_project_requests_count。
请求参数
其他校验规则
id >= 1id必须存在于projects.id
请求示例
响应示例
错误响应
404:project 不存在或不可访问
user
POST /api/projects/create
- 功能说明:创建当前用户的 project。
- 变更说明:正式使用
color_mode、size_spec字符串字段,以及prod_format数组字段。
请求参数
其他校验规则
currency_id必须存在于currencies.idprice_start >= 0price_end >= 0color_mode/size_spec最长255prod_format.*最长255examples最多8个
请求示例
响应示例
错误响应
422:参数校验失败
POST /api/projects/update
- 功能说明:更新当前用户的 project。
- 变更说明:正式使用
color_mode、size_spec字符串字段,以及prod_format数组字段。
请求参数
其他校验规则
id为当前登录用户自己的 projectcolor_mode/size_spec最长255prod_format.*最长255
请求示例
响应示例
错误响应
403:project 不属于当前登录用户
GET /api/projects/info
- 功能说明:获取当前用户的 project 详情。
- 变更说明:直接返回
color_mode、size_spec、prod_format,其中prod_format为数组;不再返回旧的formats、colorModels。
请求参数
其他校验规则
id必须属于当前登录用户
请求示例
响应示例
错误响应
- 无新增,沿用原有错误语义。
GET /api/projects/meta
- 功能说明:获取 project 表单元数据。
- 变更说明:不再返回
formats、color_models、use_ranges、translations。
请求参数
- 无
其他校验规则
- 无
请求示例
响应示例
错误响应
- 无新增,沿用原有错误语义。
POST /api/project_requests/requested_list
- 功能说明:获取当前用户某个 project 的应征列表。
- 变更说明:返回中的
artist新增languages。
请求参数
其他校验规则
project_id必须属于当前登录用户page >= 1size >= 1 && size <= 50
请求示例
响应示例
错误响应
404:project 不存在或不属于当前登录用户
POST /api/project_requests/choosed_list
- 功能说明:获取当前用户某个 project 的已选中应征列表。
- 变更说明:返回中的
artist新增languages。
请求参数
其他校验规则
project_id必须属于当前登录用户page >= 1size >= 1 && size <= 50
请求示例
响应示例
错误响应
404:project 不存在或不属于当前登录用户
POST /api/project_requests/choose
- 功能说明:选择某个 project 应征并创建 worktask。
- 变更说明:project 来源 worktask 创建时会同时生成
project_snap,并把 project 快照写入busable_snap、project request 快照写入reqable_snap,供后续 worktask 列表、详情、评价接口稳定读取。
请求参数
其他校验规则
project_request_id必须存在于project_requests.idproject_request_id必须属于当前登录用户自己的 project- 仅
pending、user_chosen状态的应征允许被选择
请求示例
响应示例
错误响应
400:应征状态不允许被选择
404:应征不存在或不属于当前登录用户
POST /api/work_tasks/list
- 功能说明:获取当前用户的 worktask 列表。
- 变更说明:project 来源 worktask 的
reqable会返回project_snap;service 来源 worktask 仍返回service_snap。
请求参数
其他校验规则
page >= 1size >= 1 && size <= 50type仅支持service、project
请求示例
响应示例
错误响应
422:参数校验失败
GET /api/work_tasks/info
- 功能说明:获取当前用户的 worktask 详情。
- 变更说明:project 来源 worktask 的
reqable改为返回project_snap,并返回 project request 的币种、作品附件等信息,不再访问 service request 专属字段。
请求参数
其他校验规则
id必须属于当前登录用户
请求示例
响应示例
错误响应
404:worktask 不存在或不属于当前登录用户
POST /api/artist_rec_reviews/create_work_task_review
- 功能说明:用户对 worktask 中的 artist 发起评价。
- 变更说明:project 来源 worktask 的评价会关联
project_snap,写入artist_rec_reviews.bizable_type = project_snap。
请求参数
其他校验规则
work_task_id必须属于当前登录用户- 同一个 worktask 只能评价一次
请求示例
响应示例
错误响应
403:重复评价
artist_center
POST /api/artist_center/project_request/create
- 功能说明:artist 对公开 project 发起应征。
- 变更说明:新增
is_anonymous;创建后会像 service request 一样为detail自动创建翻译记录。
请求参数
其他校验规则
project_id必须存在于projects.idcurrency_id必须存在于currencies.idartworks最大5个days_need必须为整数- 不允许对自己的 project 应征
- 对同一个 project,
pending/user_chosen状态下不能重复应征
请求示例
响应示例
错误响应
400:重复应征或对自己的 project 应征
POST /api/artist_center/project_request/list
- 功能说明:artist 获取自己的 project 应征列表。
- 变更说明:列表对象显式返回
is_anonymous。
请求参数
其他校验规则
page >= 1size >= 1 && size <= 50
请求示例
响应示例
错误响应
- 无新增,沿用原有错误语义。
POST /api/artist_center/project_request/list_by_chosen
- 功能说明:artist 获取自己被选中的 project 应征列表。
- 变更说明:列表对象显式返回
is_anonymous。
请求参数
其他校验规则
page >= 1size >= 1 && size <= 50
请求示例
响应示例
错误响应
- 无新增,沿用原有错误语义。
POST /api/artist_center/work_tasks/list
- 功能说明:artist 获取自己的 worktask 列表。
- 变更说明:project 来源 worktask 的
reqable会返回project_snap;service 来源 worktask 仍返回service_snap。
请求参数
其他校验规则
page >= 1size >= 1 && size <= 50busable_type仅支持service、project
请求示例
响应示例
错误响应
422:参数校验失败
GET /api/artist_center/work_tasks/info
- 功能说明:artist 获取自己的 worktask 详情。
- 变更说明:project 来源 worktask 的
reqable改为返回project_snap,并返回 project request 的币种、作品附件等信息。
请求参数
其他校验规则
id必须属于当前登录 artist
请求示例
响应示例
错误响应
404:worktask 不存在或不属于当前登录 artist
POST /api/artist_center/user_rec_reviews/create_work_task_review
- 功能说明:artist 对 worktask 中的 user 发起评价。
- 变更说明:
type只接受service、project;project 来源 worktask 的评价会关联project_snap,写入user_rec_reviews.bizable_type = project_snap。
请求参数
其他校验规则
work_task_id必须属于当前登录 artisttype必须与 worktask 的真实业务类型一致- 同一个 worktask 只能评价一次
请求示例
响应示例
错误响应
400:type 与 worktask 真实业务类型不一致
兼容性说明
GET /api/projects/meta已不再返回formats、color_models、use_ranges、translations,前端不要继续依赖这些字段。- project 创建/更新时,前端应改用以下字段:
color_modesize_specprod_format
- 其中
prod_format与 service 一致,为数组字段;color_mode、size_spec为字符串字段。 GET /api/projects/info不再返回旧的formats、colorModels,前端应统一读取以下字段:color_modesize_specprod_format
GET /api/content/projects/info也不应再依赖旧的formats、colorModels返回结构。- content project info 中:
project_requests是非匿名应征列表hidden_project_requests_count才是匿名应征数量
- artist 端匿名应征只影响 content project info 的公开展示,不影响 artist 自己查看其应征记录。
- project 来源 worktask 相关接口现在统一返回
project_snap,前端不要再假设reqable一定包含service_snap或serviceRequestFiles。 POST /api/artist_center/user_rec_reviews/create_work_task_review的type只支持真实业务值:serviceproject
task当前没有业务用途,不应再作为该接口的传参值。

