You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pathom3中Resolver的:provides与:output配置区别解析

Pathom3 Resolver里:provides和:output的区别

根本定位不同

  • :output:是输出字段的极简声明,用向量直接列字段名,作用就是告诉Pathom「这个Resolver能生成哪些顶层字段」,属于基础款的输出定义。
  • :provides:是精细化的输出描述,用键值对(map)形式,除了声明字段,还能给每个字段加元数据(比如类型、描述、关联实体),支持复杂的Schema需求。

用法对比

拿你给出的Resolver配置举例:

#com.wsscode.pathom3.connect.operation.Resolver
{:config
 #:com.wsscode.pathom3.connect.operation
 {:input [:ip]
  :provides {:longitude {}
             :latitude {}}
  :output [:longitude
           :latitude]
  :op-name com.wsscode.pathom3.demos.ip-weather/ip->lat-long},
 :resolve ...}
  • :output用向量直接列出longitude和latitude,写法简单直接。
  • :provides这里用了空map占位,要是需要给字段加额外信息,直接在map里填就行,比如:
    :provides {:longitude {:type :float :desc "IP对应的经度"}
               :latitude {:type :float :desc "IP对应的纬度"}}
    

适用场景

  • 只需要告诉Pathom输出哪些字段?用:output就够,省事。
  • 要给字段加元数据、定义嵌套输出结构,或者做Schema相关的扩展?必须用:provides。

内部关联

Pathom会自动处理两者的关系:如果只写了:output,它会自动转成对应的:provides结构(每个字段对应空map);如果同时写了两者,:provides的优先级更高,会覆盖:output的声明。

内容的提问来源于stack exchange,提问作者MouseNag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 13:45:31