V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xjz19901211
V2EX  ›  程序员

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

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

    官网 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 的建议,介绍改了更简单明了了 发到创意区了 https://www.v2ex.com/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 这几天更新了下功能和界面体验。然后介绍也修改了。
    发到创意区了 https://www.v2ex.com/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   ·   实用小工具   ·   922 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:37 · PVG 04:37 · LAX 12:37 · JFK 15:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.