代码之家  ›  专栏  ›  技术社区  ›  Kamalakannan J

如何在RAML输出中动态包含/排除API块

  •  0
  • Kamalakannan J  · 技术社区  · 6 年前

    我只是想了解在RAML生成的文档中排除/包含端点的可能性。

    例如,给定

    #%RAML 1.0
    baseUri: https://api.mybanks.com/v1
    title: MyBanks-API
    version: v1
    protocols: [HTTP, HTTPS]
    mediaType: application/json
    
    /banks:
      get:
        description: Lists all banks
        responses:
          200:
            body:
              text/plain:
                example: ['b1', 'b2']
    /accounts:
      get:
        description: List all accounds
        responses:
          200:
            body:
              text/plain:
                example: ['a1', 'a2', 'a3']
    
    

    我想排除 /banks 生成的文档中的API。有哪些可行的方法?(最好不要评论)

    0 回复  |  直到 6 年前
        1
  •  0
  •   George    6 年前

    没有办法(AFAIK)动态排除API规范的片段——而且,这种特性的语义是什么?i、 这是什么意思?另一个需要考虑的问题是,当您接受规范并开始实现它时,它是如何应用的?

    现在有一种方法可以用RAML扩展现有的API规范 extension . https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md/#extensions

    如果你用RAML 碎片规范将分为两个文件:

    #%RAML 1.0
    baseUri: https://api.mybanks.com/v1
    title: MyBanks-API
    version: v1
    protocols: [HTTP, HTTPS]
    mediaType: application/json
    
    /accounts:
      get:
        description: List all accounds
        responses:
          200:
            body:
              text/plain:
                example: ['a1', 'a2', 'a3']
    

    2) 那个 延伸

    #%RAML 1.0 Extension
    extends: banks-api.raml
    
    /banks:
      get:
        description: Lists all banks
        responses:
          200:
            body:
              text/plain:
                example: ['b1', 'b2']
    

    现在您有了API的两个视图,(1)根视图和(2)根视图 延伸 . 您可以提供根目录或 extention