让文档参与到你的开发中,帮助你提高效率 - XJZProxy - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xjz19901211
V2EX    程序员

让文档参与到你的开发中,帮助你提高效率 - XJZProxy

  •  
  •   xjz19901211
    xiejiangzhi 2019-05-28 18:20:37 +08:00 2646 次点击
    这是一个创建于 2329 天前的主题,其中的信息可能已经有所发展或是发生改变。

    官网 https://xjzproxy.xjz.pw/zh-cn/

    主要功能:

    • HTTP/HTTPS/HTTP2/GRPC 请求代理
    • 按 host, connection 分组请求历史
    • 简单的搜索语言过滤请求历史
    • 自动生成接口文档预览
    • 自动生成响应数据
    • 自动对比请求、响应数据,并显示差异
    • 按过滤结果生成相应的错误统计

    通常我们合作开发时都是:

    商量接口文档 => 使用者自己生成假数据开撸 => 最对接真实接口,发现不对再改 \\=> 开发接口 // 

    甚至是

    商量接口文档 => 开发接口 => 等接口好 => 发现不对再改接口或文档 

    最后基本都是接口使用者拿到文档时没有真实接口可以用。真实接口好了后,改着改着真实接口和文档完全不一样了。

    此工具就是为了提高这一过程的效率。一个最简单的示例

    先在创建项目并写个文档(YAML 格式)

    project: host: mydomain.com apis: - title: Get a user method: GET path: /api/v1/users/\d+ response: success: http_code: 200 data: id: 1 name: .t/name 

    然后就可以通过 XJZProxy 代理来访问了

    $ curl http://mydomain.com/api/v1/users/123 --proxy localhost:9898 {"id": 1, "name": "random name"} 

    当然,在工具中查看渲染好的漂亮文档也是不能少的。更多文档格式请参考 这里


    有兴趣的朋友可以在 这里 下载(目前只支持 MacUbuntu,其它 linux 系统的包看情况再折腾了),然后发邮件到 base64 eGllamlhbmd6aGlAZ21haWwuY29t。我会给前 100 名发放永久证书哟。记得带上标题 "XJZProxy 证书申请",不然我可能注意不到。当然,没有证书的话,也可以享受完整的代理功能及受限的文档代理功能。

    第 1 条附言    2019-05-28 20:52:29 +08:00
    PS: 如果你在使用 GRPC 的话,只要按配置好 protobufs 的路径,就可以直接调用接口了。当然,如果你想定义 grpc 接口返回的数据内容,还是需要在文档中定义好一些数据模板。
    第 2 条附言    2019-05-29 08:43:33 +08:00
    带几张图
    请求参数和文档对不上时,会有提示
    ![error_params]( https://xjzproxy.xjz.pw/imgs/app-1.png)

    文档预览生成
    ![doc_preview]( https://xjzproxy.xjz.pw/imgs/app-2.png)
    第 3 条附言    2019-06-05 17:53:35 +08:00

    感谢 @marsgt 的建议,介绍改了更简单明了了 发到创意区了 t/571213 对于 api 团队协作有兴趣的可以下载试试哟。

    第 4 条附言    2019-06-16 11:29:29 +08:00
    已经撸了个 Windows 版本出来,试用证书也内置到软件中了,欢迎试玩 :)
    14 条回复    2019-08-02 20:14:37 +08:00
    xjz19901211
        1
    xjz19901211  
    OP
       2019-05-28 20:54:16 +08:00
    这么多点击居然无一回复。。。

    求试用,求反馈!
    marsgt
        2
    marsgt  
       2019-05-28 21:04:50 +08:00
    Windows 平台开发者,不太好回复。。

    你这个我觉得有点类似 VSCode 上的 REST Client 插件( https://github.com/Huachao/vscode-restclient ),只不过他用的是 REST 格式,你用的是 YAML。
    但是它作为插件应该能支持全平台。。
    xjz19901211
        3
    xjz19901211  
    OP
       2019-05-28 23:35:27 +08:00 via iPad
    @marsgt 感谢回复,看了下 rest client,没看懂。可能是因为我没用过 vscode。等我明天再花时间了解一下。
    对我这新手来说,编译个 windows 版本大概要花很多时间。以后看情况再考虑 windows 了
    star7th
        4
    star7th  
       2019-05-29 14:59:27 +08:00
    粗略看一下不想浪费太多时间。不回复可能是大多数人没这个需求,不是技术上的问题。
    xjz19901211
        5
    xjz19901211  
    OP
       2019-05-29 16:26:03 +08:00
    @marsgt 发现可能是我描述的不清楚, 这个工具相当于一个代理 + 文档化的本地服务器。和 http client 基本没关系。。

    定义好文档后,我们完全可以在没有接口服务器的情况下,发送真实的请求(只需要设置 http 代理),得到相应格式的数据。通过开关可以直接在文档数据和真实服务器数据之间切换。除了配置代理,代码中完全不需要任何变动
    xjz19901211
        6
    xjz19901211  
    OP
       2019-05-29 16:45:22 +08:00 via iPad
    @star7th 多谢反馈。所以我要忽悠点人来才能得到更多反馈,哈哈
    marsgt
        7
    marsgt  
       2019-05-29 16:48:50 +08:00
    @xjz19901211
    那应该是我理解的问题,感觉相当于前端调试用的 mock Server ?感觉是不是和 YApi 类似啊
    xjz19901211
        8
    xjz19901211  
    OP
       2019-05-30 09:46:27 +08:00
    @marsgt 工具的定位是提高协作开发效率。目前已经完成的功能,大部分都是相当于一个本地的 mock 服务。

    我们的目标是以 `api 文档` 为联结点来解决前后端协作问题。简单来说就是前后端使用这个工具来辅助开发,大家只要都满足了文档了定义(工具自动基于文档定义去检查),那么所有工作完成后,真实的对接也是没有问题的。

    对前端来说,有了这份文档就可以直接开始调用接口、调试了。
    对后端来说,通过这份文档,也可以验证真实的 api 接口是否与约定的一致。不过,后端方面的功能还在开发中。目前只能在配合前端调用来检查真实接口是否符合定义,而无法单独使用。
    xjz19901211
        9
    xjz19901211  
    OP
       2019-05-30 09:56:24 +08:00
    @marsgt 非常感谢你的反馈。讨论中发现工具完全没有描述清楚。下一版做好了再更新下,哈哈
    marsgt
        10
    marsgt  
       2019-05-30 10:37:38 +08:00
    @xjz19901211
    嗯,如果开始能有句 slogan,开始就说明这个产品(目前)提供了私有化本地部署的 Mock Server 服务,并用文档(约定)的方式解决了前后端调试接口的痛点,我可能就不会绕个大圈了。。
    xjz19901211
        11
    xjz19901211  
    OP
       2019-06-05 17:51:16 +08:00
    Hi @marsgt 这几天更新了下功能和界面体验。然后介绍也修改了。
    发到创意区了 t/571213
    有兴趣来给点意见建议嘛?
    xjz19901211
        12
    xjz19901211  
    OP
       2019-06-16 11:31:06 +08:00
    @marsgt 已经撸了个 Windows 版本出来,试用证书也内置到软件中了,要不要来试试?
    由于不是 windows 原生的,性能相对 *nix 慢点,正在努力优化。
    marsgt
        13
    marsgt  
       2019-06-16 14:18:20 +08:00
    @xjz19901211
    好像链接有点问题,下载不了(不过也不排除是我网的问题♂)。。
    建议直接放百度云上吧~
    xjz19901211
        14
    xjz19901211  
    OP
       2019-08-02 20:14:37 +08:00
    @marsgt 没注意这边,都去玩游戏去了。

    没人用啊,一怒之下开源了 https://github.com/xiejiangzhi/xjzproxy 哈哈哈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4798 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 01:06 PVG 09:06 LAX 18:06 JFK 21:06
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86