• 第十七章 源代码文件 REST API 教程(二)


    第十七章 源代码文件 REST API 教程(二)

    获取在命名空间中定义的源代码文件

    要获取有关命名空间中源代码文件的信息:

    • 首先,使用 GetDocNames 方法获取文件的名称。
    • 然后用GetDoc 方法获取一个文件的内容,也可以用GetDocs 方法获取多个文件的内容。
    • 如果要提高应用程序的网络效率,可以保留源代码文件的名称和内容的本地缓存,并使用 GetModifiedDocNames 方法仅获取内容发生变化的源代码文件的名称或使用带有 If-None-Match HTTP 标头的 GetDoc 方法。

    GetDocNames 方法返回映射到命名空间的所有数据库中的所有源代码文件的名称。

    {
      "status": {
        "errors": [],
        "summary": ""
      },
      "console": [],
      "result": {
        "content": [
          {
            "name": "%Api.DocDB.cls",
            "cat": "CLS",
            "ts": "2016-08-03 20:01:42.000",
            "upd": true,
            "db": "IRISLIB",
            "gen": false
          },
          ...
          {
            "name": "EnsProfile.mac",
            "cat": "RTN",
            "ts": "2003-09-19 13:53:31.000",
            "upd": true,
            "db": "INVENTORYR",
            "gen": false
          },
          ...
          {
            "name": "xyz.mac",
            "cat": "RTN",
            "ts": "2016-08-11 15:05:02.167",
            "upd": false,
            "db": "INVENTORYR",
            "gen": false
          }
        ]
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    以下 GetDoc 调用返回 xyz.mac 文件的内容:

    http://localhost:52773/api/atelier/v1/INVENTORY/doc/xyz.mac
    
    • 1

    此调用返回:

    {
      "status": {
        "errors": [],
        "summary": ""
      },
      "console": [],
      "result": {
        "name": "xyz.mac",
        "db": "INVENTORYR",
        "ts": "2016-09-14 14:10:16.540",
        "upd": false,
        "cat": "RTN",
        "status": "",
        "enc": false,
        "flags": 0,
        "content": [
          "ROUTINE xyz",
          "xyz ;",
          "   w \"hello\""
        ]
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在命名空间中创建新文件或更新现有文件

    要在命名空间中创建新文件或更新现有文件,请使用 PutDoc 方法。例如,以下 REST 调用在 INVENTORY 命名空间中创建一个新的 xyz.mac 源代码文件,或者,如果 xyz.mac 文件存在,则此调用将文件的原始定义替换为新定义。如果要更新新文件,则必须指定 HTTP 标头 If-None-Match 以标识文件的当前版本,或指定 ?ignoreConflict=1 URL 参数以绕过版本检查。有关详细信息,请参阅参考部分中的 PutDoc

    PUT http://localhost:52773/api/atelier/v1/INVENTORY/doc/xyz.mac
    
    • 1

    应该指定 Content-Type application/json 和以下 JSON 消息:

    {
     "enc": false,
     "content": [
       "ROUTINE xyz",
       "xyz ;",
       "   w \"hello\""
       ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    该调用返回以下 JSON 消息。它显示源代码文件已在 INVENTORYR 数据库中创建,该数据库是 INVENTORY 命名空间中例程的默认数据库。

    {
      "status": {
        "errors": [],
        "summary": ""
      },
      "console": [],
      "result": {
        "name": "xyz.mac",
        "db": "INVENTORYR",
        "ts": "2016-09-14 14:10:16.540",
        "upd": false,
        "cat": "RTN",
        "status": "",
        "enc": false,
        "flags": 0,
        "content": []
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    如果要更新或创建二进制文件,请为 enc 指定一个真值,并将二进制内容作为二进制值的 base64 编码的块数组包含在内。

  • 相关阅读:
    【算法与数据结构】--常见数据结构--数组和链表
    蓝牙核心规范(V5.4)12.1-深入详解之PAwR
    自定义mvc框架复习(crud)
    阿里云 —— Windows下搭建“阿里云音视频通信RTC“(2)
    【FPGA教程案例53】语音案例2——基于FIR低通滤波器的语音信号降噪FPGA实现
    第二十一章 构建和配置 Nginx (UNIX® Linux macOS) - 为CSP构建Nginx的过程
    网络安全——Web目录扫描
    Mybatis入门
    【操作系统】银行家算法
    STL是什么?如何理解STL?
  • 原文地址:https://blog.csdn.net/yaoxin521123/article/details/126170643