diff --git a/include/eArango.hrl b/include/eArango.hrl index 9b34742..9a80b10 100644 --- a/include/eArango.hrl +++ b/include/eArango.hrl @@ -5,3 +5,7 @@ -define(AgHead, 4). %% (not used in VPP) -define(AgPatch, 5). -define(AgOptions, 6). %% (not used in VPP) + +-define(AgDefQuery, #{}). +-define(AgDefHeader, #{}). +-define(AgDefBody, <<>>). \ No newline at end of file diff --git a/src/agApi/agAdminMonitor.erl b/src/agApi/agAdminMonitor.erl index 72f4c2e..5ea269a 100644 --- a/src/agApi/agAdminMonitor.erl +++ b/src/agApi/agAdminMonitor.erl @@ -34,12 +34,10 @@ % 400:如果为up或level指定了无效值,则返回。 % 500:如果服务器由于内存不足错误而无法生成结果,则返回。 getAdminLog(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/log">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/log">>). getAdminLog(PoolNameOrSocket, QueryPars) -> - QueryBinary = agMiscUtils:spellQueryPars(QueryPars), - Path = <<"/_admin/log", QueryBinary/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/log">>, QueryPars, ?AgDefHeader, ?AgDefBody). % 返回当前的日志级别设置 % GET /_admin/log/level @@ -48,7 +46,7 @@ getAdminLog(PoolNameOrSocket, QueryPars) -> % 200:如果请求有效,则返回 % 500:如果服务器由于内存不足错误而无法生成结果,则返回。 getAdminLogLevel(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/log/level">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/log/level">>). % 修改当前的日志级别设置 % PUT /_admin/log/level @@ -109,8 +107,8 @@ getAdminLogLevel(PoolNameOrSocket) -> % 405:使用无效的HTTP方法时返回。 % 500:如果服务器由于内存不足错误而无法生成结果,则返回。 modifyAdminLogLevel(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), - agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_admin/log/level">>, [], BodyStr). + BodyStr = eVPack:encodeBin(MapData), + agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_admin/log/level">>, ?AgDefQuery, ?AgDefHeader, BodyStr). % 返回统计信息 % GET /_admin/statistics @@ -180,7 +178,7 @@ modifyAdminLogLevel(PoolNameOrSocket, MapData) -> % 进行中:当前繁忙的工作线程数 % 排队:排队等待工作线程可用的作业数 getAdminProps(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/statistics">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/statistics">>). % 统计数据说明 % 获取统计信息的描述性信息 @@ -214,7 +212,7 @@ getAdminProps(PoolNameOrSocket) -> % code:HTTP状态码 % 错误:错误,在这种情况下为false getAdminStatisticsDesc(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/statistics-description">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/statistics-description">>). % TLS 永久链接 % 返回TLS数据的摘要 @@ -233,7 +231,7 @@ getAdminStatisticsDesc(PoolNameOrSocket) -> % 返回码 % 200:如果一切正常,此API将返回HTTP 200 getAdminTLS(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/tls">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/tls">>). % 触发TLS数据的重新加载并返回摘要永久链接 % 触发此服务器的TLS数据(服务器密钥,客户端身份验证CA)的重新加载,并以摘要形式返回新数据。 @@ -244,9 +242,9 @@ getAdminTLS(PoolNameOrSocket) -> % 200:如果一切正常,此API将返回HTTP 200 % 403:如果未使用超级用户权限调用此API,它将返回HTTP 403 FORBIDDEN。 triggerAdminTLS(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_admin/server/tls">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_admin/server/tls">>). -% 返回当前实例指标 +% 返回当前实例指标 IMY-todo 这个接口返回的数据不是json也不是vpack % GET /_admin/metrics % 以Prometheus格式返回实例的当前指标。返回的文档收集所有实例指标,这些指标在任何给定时间进行测量,并将其公开以供Prometheus收集。 % 该文档包含不同的度量标准和度量标准组,具体取决于查询实例的角色。所有导出的指标都使用arangodb_或rocksdb_字符串发布,以将其与其他收集的数据区分开。 @@ -255,7 +253,7 @@ triggerAdminTLS(PoolNameOrSocket) -> % 200:指标已成功返回。 % 404:可以使用--server.export-metrics-api false 服务器中的设置禁用指标API 。在这种情况下,调用结果表明找不到该API。 getAdminMetrics(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/metrics">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/metrics">>). % 集群 @@ -267,7 +265,7 @@ getAdminMetrics(PoolNameOrSocket) -> % 返回码 % 200:如果一切正常,此API将返回HTTP 200 getAdminServerMode(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/mode">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/mode">>). % 返回集群永久链接中服务器的ID % 了解服务器的内部ID @@ -277,7 +275,7 @@ getAdminServerMode(PoolNameOrSocket) -> % 200:当服务器以群集模式运行时返回。 % 500:当服务器未在群集模式下运行时返回。 getAdminServerId(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/id">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/id">>). % 返回集群中服务器的角色 % GET /_admin/server/role @@ -294,7 +292,7 @@ getAdminServerId(PoolNameOrSocket) -> % errorNum:服务器错误号 % 作用:之一[ SINGLE,协调员,PRIMARY,SECONDARY,AGENT,UNDEFINED ] getAdminServerRole(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/role">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/role">>). % 返回服务器是否可用 @@ -305,7 +303,7 @@ getAdminServerRole(PoolNameOrSocket) -> % 200:如果服务器已启动并且正在运行并且可用于任意操作,并且未设置为只读模式,并且在活动故障转移设置的情况下当前不是关注者,则此API将返回HTTP 200。 % 503:如果服务器在启动或关闭过程中,设置为只读模式或当前在活动故障转移设置中为关注者,则将返回HTTP 503。 getAdminServerAvailability(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/availability">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/server/availability">>). % DBserver 永久链接的查询统计信息 % 允许查询集群中数据库服务器的统计信息 @@ -318,7 +316,7 @@ getAdminServerAvailability(PoolNameOrSocket) -> % 403: getAdminClusterProps(PoolNameOrSocket, DBserver) -> Path = <<"/_admin/clusterStatistics?DBserver=", (agMiscUtils:toBinary(DBserver))/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path). % 查询集群的运行状况以监视Permalink % 返回由监督(机构)评估的集群的运行状况 @@ -349,7 +347,7 @@ getAdminClusterProps(PoolNameOrSocket, DBserver) -> % 返回码 % 200: getAdminClusterHealth(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/cluster/health">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_admin/cluster/health">>). % 重新加载路由表。 % POST /_admin/routing/reload @@ -357,4 +355,4 @@ getAdminClusterHealth(PoolNameOrSocket) -> % 返回码 % 200:路由信息重新加载成功 reloadAdminRouting(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_admin/routing/reload">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_admin/routing/reload">>). diff --git a/src/agApi/agAnalyzers.erl b/src/agApi/agAnalyzers.erl index 4f5b1d8..8ac0b3d 100644 --- a/src/agApi/agAnalyzers.erl +++ b/src/agApi/agAnalyzers.erl @@ -25,8 +25,8 @@ % 400:缺少一个或多个必需参数,或者一个或多个参数无效。 % 403:用户无权使用此配置创建和分析器。 newAnalyzer(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), - agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/analyzer">>, [], BodyStr). + BodyStr = eVPack:encodeBin(MapData), + agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/analyzer">>, ?AgDefQuery, ?AgDefHeader, BodyStr). % 返回分析器定义 % GET /_api/analyzer/{analyzer-name} @@ -42,7 +42,7 @@ newAnalyzer(PoolNameOrSocket, MapData) -> % 404:不存在这种分析器配置。 getAnalyzer(PoolNameOrSocket, AnalyzerName) -> Path = <<"/_api/analyzer/", AnalyzerName/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path). % 返回可用的分析器定义列表 % GET /_api/analyzer @@ -54,7 +54,7 @@ getAnalyzer(PoolNameOrSocket, AnalyzerName) -> % 返回码 % 200:分析器定义已成功检索。 getAnalyzerList(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/analyzer">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/analyzer">>). % 删除分析仪配置 % DELETE /_api/analyzer/{analyzer-name} @@ -74,9 +74,8 @@ getAnalyzerList(PoolNameOrSocket) -> % 409:指定的分析器配置仍在使用中,并且省略了强制或 指定了错误。。 delAnalyzer(PoolNameOrSocket, AnalyzerName) -> Path = <<"/_api/analyzer/", AnalyzerName/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path). delAnalyzer(PoolNameOrSocket, AnalyzerName, QueryPars) -> - QueryBinary = agMiscUtils:spellQueryPars(QueryPars), - Path = <<"/_api/analyzer/", AnalyzerName/binary, QueryBinary/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined). + Path = <<"/_api/analyzer/", AnalyzerName/binary>>, + agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, QueryPars, ?AgDefHeader, ?AgDefBody). diff --git a/src/agApi/agAqls.erl b/src/agApi/agAqls.erl index 8562691..f069b4d 100644 --- a/src/agApi/agAqls.erl +++ b/src/agApi/agAqls.erl @@ -85,8 +85,8 @@ % 404:如果查询中访问了不存在的集合,服务器将以HTTP 404进行响应。 % 405:如果使用了不受支持的HTTP方法,则服务器将以HTTP 405进行响应。 newCursor(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), - agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/cursor">>, [], BodyStr). + BodyStr = eVPack:encodeBin(MapData), + agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/cursor">>, ?AgDefQuery, ?AgDefHeader, BodyStr). % 从现有游标返回下一个结果 @@ -105,7 +105,7 @@ newCursor(PoolNameOrSocket, MapData) -> % 404:如果找不到具有指定标识符的游标,则服务器将使用HTTP 404进行响应。 nextCursor(PoolNameOrSocket, CursorId) -> Path = <<"/_api/cursor/", (agMiscUtils:toBinary(CursorId))/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path). % 删除光标永 % DELETE /_api/cursor/{cursor-identifier} @@ -119,7 +119,7 @@ nextCursor(PoolNameOrSocket, CursorId) -> % 404:如果服务器不知道游标,则返回404。如果在销毁游标后使用了游标,也将返回该值。 delCursor(PoolNameOrSocket, CursorId) -> Path = <<"/_api/cursor/", (agMiscUtils:toBinary(CursorId))/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path). % AQL查询的HTTP接口 % @@ -154,8 +154,8 @@ delCursor(PoolNameOrSocket, CursorId) -> % 400:如果请求格式错误或查询包含解析错误,服务器将以HTTP 400响应。响应的正文将包含嵌入在JSON对象中的错误详细信息。如果查询引用任何变量,则忽略绑定变量也会导致HTTP 400错误。 % 404:如果查询中访问了不存在的集合,服务器将以HTTP 404进行响应。 explainQuery(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), - agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/explain">>, [], BodyStr). + BodyStr = eVPack:encodeBin(MapData), + agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/explain">>, ?AgDefQuery, ?AgDefHeader, BodyStr). % 解析一个AQL查询并返回有关它的信息 % POST /_api/query @@ -166,8 +166,8 @@ explainQuery(PoolNameOrSocket, MapData) -> % 200:如果查询有效,服务器将使用HTTP 200进行响应,并在响应的bindVars属性中返回在查询中找到的绑定参数的名称(如果有)。它还将在collections属性中返回查询中使用的collections的数组。如果查询可以成功解析,则返回的JSON 的ast属性将包含查询的抽象语法树表示形式。ast的格式在将来的ArangoDB版本中可能会发生变化,但是可以用来检查ArangoDB如何解释给定查询。请注意,将在不对其应用任何优化的情况下返回抽象语法树。 % 400:如果请求格式错误或查询包含解析错误,服务器将以HTTP 400响应。响应的正文将包含嵌入在JSON对象中的错误详细信息。 parseQuery(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), - agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/query">>, [], BodyStr). + BodyStr = eVPack:encodeBin(MapData), + agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/query">>, ?AgDefQuery, ?AgDefHeader, BodyStr). % 查询跟踪固定链接 % ArangoDB具有HTTP接口,用于检索当前正在执行的AQL查询列表和慢速AQL查询列表。为了有意义地使用这些API,需要在执行HTTP请求的数据库中启用查询跟踪。 @@ -185,7 +185,7 @@ parseQuery(PoolNameOrSocket, MapData) -> % 200:如果成功检索到属性,则返回。 % 400:如果请求格式错误,服务器将以HTTP 400进行响应, getQueryProps(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/query/properties">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/query/properties">>). % 更改AQL查询跟踪的配置 % PUT /_api/query/properties @@ -202,8 +202,8 @@ getQueryProps(PoolNameOrSocket) -> % 200:如果属性更改成功,则返回。 % 400:如果请求格式错误,服务器将以HTTP 400进行响应, changeQueryProps(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), - agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_api/query/properties">>, [], BodyStr). + BodyStr = eVPack:encodeBin(MapData), + agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_api/query/properties">>, ?AgDefQuery, ?AgDefHeader, BodyStr). % 返回当前正在运行的AQL查询的列表 % GET /_api/query/current @@ -219,7 +219,7 @@ changeQueryProps(PoolNameOrSocket, MapData) -> % 200:可以成功检索查询列表时返回。 % 400:如果请求格式错误,服务器将以HTTP 400进行响应, currentQuery(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/query/current">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/query/current">>). % 返回运行缓慢的AQL查询的列表 @@ -237,7 +237,7 @@ currentQuery(PoolNameOrSocket) -> % 200:可以成功检索查询列表时返回。 % 400:如果请求格式错误,服务器将以HTTP 400进行响应, getSlowQuery(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/query/slow">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/query/slow">>). % 清除慢速AQL查询列表 % DELETE /_api/query/slow @@ -246,7 +246,7 @@ getSlowQuery(PoolNameOrSocket) -> % 200:成功清除查询列表后,服务器将以HTTP 200响应。 % 400:如果请求格式错误,服务器将使用HTTP 400进行响应。 delSlowQuery(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, <<"/_api/query/slow">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, <<"/_api/query/slow">>). % 杀死查询永久链接 @@ -263,7 +263,7 @@ delSlowQuery(PoolNameOrSocket) -> % 404:当找不到指定ID的查询时,服务器将以HTTP 404响应。 killQuery(PoolNameOrSocket, QueryId) -> Path = <<"/_api/query/", (agMiscUtils:toBinary(QueryId))/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path). % AQL查询结果缓存的HTTP接口 % 本节介绍用于控制AQL查询结果缓存的API方法。 @@ -284,7 +284,7 @@ killQuery(PoolNameOrSocket, QueryId) -> % 200:可以成功检索结果列表时返回。 % 400:如果请求格式错误,服务器将以HTTP 400进行响应, getQueryCaches(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/query-cache/entries">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/query-cache/entries">>). % 清除AQL查询结果缓存中的所有结果 % DELETE /_api/query-cache @@ -293,7 +293,7 @@ getQueryCaches(PoolNameOrSocket) -> % 200:成功清除缓存后,服务器将以HTTP 200响应。 % 400:如果请求格式错误,服务器将使用HTTP 400进行响应。 clearQueryCaches(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, <<"/_api/query-cache">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, <<"/_api/query-cache">>). % 返回AQL查询结果缓存的全局配置 % GET /_api/query-cache/properties @@ -307,7 +307,7 @@ clearQueryCaches(PoolNameOrSocket) -> % 200:如果可以成功检索属性,则返回。 % 400:如果请求格式错误,服务器将以HTTP 400进行响应, getQCacheProps(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/query-cache/properties">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/query-cache/properties">>). % 全局调整AQL查询结果缓存属性 % PUT /_api/query-cache/properties @@ -323,8 +323,8 @@ getQCacheProps(PoolNameOrSocket) -> % 200:如果属性更改成功,则返回。 % 400:如果请求格式错误,服务器将以HTTP 400进行响应, changeQCacheProps(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), - agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_api/query-cache/properties">>, [], BodyStr). + BodyStr = eVPack:encodeBin(MapData), + agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_api/query-cache/properties">>, ?AgDefQuery, ?AgDefHeader, BodyStr). % AQL用户功能管理固定链接 % 这是用于管理AQL用户功能的ArangoDB HTTP接口的简介。AQL用户功能是一种使用用户定义的JavaScript代码扩展ArangoDB查询语言(AQL)功能的方法。 @@ -353,8 +353,8 @@ changeQCacheProps(PoolNameOrSocket, MapData) -> % errorNum:服务器错误号 % errorMessage:描述性错误消息 newUserFun(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), - agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/aqlfunction">>, [], BodyStr). + BodyStr = eVPack:encodeBin(MapData), + agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/aqlfunction">>, ?AgDefQuery, ?AgDefHeader, BodyStr). % 删除现有的AQL用户功能 % DELETE /_api/aqlfunction/{name} @@ -381,12 +381,11 @@ newUserFun(PoolNameOrSocket, MapData) -> % errorMessage:描述性错误消息 delUserFun(PoolNameOrSocket, UserFunName) -> Path = <<"/_api/aqlfunction/", (agMiscUtils:toBinary(UserFunName))/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path). delUserFun(PoolNameOrSocket, UserFunName, QueryPars) -> - QueryBinary = agMiscUtils:spellQueryPars(QueryPars), - Path = <<"/_api/aqlfunction/", (agMiscUtils:toBinary(UserFunName))/binary, QueryBinary/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined). + Path = <<"/_api/aqlfunction/", (agMiscUtils:toBinary(UserFunName))/binary>>, + agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, QueryPars, ?AgDefHeader, ?AgDefBody). % 返回注册的AQL用户功能 % GET /_api/aqlfunction @@ -407,12 +406,10 @@ delUserFun(PoolNameOrSocket, UserFunName, QueryPars) -> % errorNum:服务器错误号 % errorMessage:描述性错误消息 getUserFuns(PoolNameOrSocket) -> - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/aqlfunction">>, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/aqlfunction">>). getUserFuns(PoolNameOrSocket, QueryPars) -> - QueryBinary = agMiscUtils:spellQueryPars(QueryPars), - Path = <<"/_api/aqlfunction", QueryBinary/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/aqlfunction">>, QueryPars, ?AgDefHeader, ?AgDefBody). diff --git a/src/agApi/agAsyncResultHandling.erl b/src/agApi/agAsyncResultHandling.erl index 27c19cd..a69e014 100644 --- a/src/agApi/agAsyncResultHandling.erl +++ b/src/agApi/agAsyncResultHandling.erl @@ -68,7 +68,7 @@ % 404:如果找不到或已经从作业结果列表中删除或提取了作业,则返回404。在这种情况下,不会返回x-arango-async-id HTTP标头。 getAsyncJobRet(PoolNameOrSocket, JodId) -> Path = <<"/_api/job/", (agMiscUtils:toBinary(JodId))/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path). % 取消异步作业 @@ -82,7 +82,7 @@ getAsyncJobRet(PoolNameOrSocket, JodId) -> % 404:如果找不到或已经从作业结果列表中删除或提取了作业,则返回404。在这种情况下,不会返回x-arango-async-id HTTP标头。 cancelAsyncJob(PoolNameOrSocket, JodId) -> Path = <<"/_api/job/", (agMiscUtils:toBinary(JodId))/binary, "/cancel">>, - agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path). % 删除异步作业结果 % DELETE /_api/job/{type}#by-type @@ -100,12 +100,11 @@ cancelAsyncJob(PoolNameOrSocket, JodId) -> % 404:如果type为job-id,但未找到具有指定id的异步作业,则返回404。 delAsyncJobRet(PoolNameOrSocket, TypeOrJodId) -> Path = <<"/_api/job/", (agMiscUtils:toBinary(TypeOrJodId))/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path). delAsyncJobRet(PoolNameOrSocket, TypeOrJodId, QueryPars) -> - QueryBinary = agMiscUtils:spellQueryPars(QueryPars), - Path = <<"/_api/job/", (agMiscUtils:toBinary(TypeOrJodId))/binary, QueryBinary/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined). + Path = <<"/_api/job/", (agMiscUtils:toBinary(TypeOrJodId))/binary>>, + agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, QueryPars, ?AgDefHeader, ?AgDefBody). % 返回特定作业的状态 % GET /_api/job/{job-id} @@ -118,7 +117,7 @@ delAsyncJobRet(PoolNameOrSocket, TypeOrJodId, QueryPars) -> % 404:如果找不到或已经从作业结果列表中删除或提取了作业,则返回404。 getAsyncJobStatus(PoolNameOrSocket, JodId) -> Path = <<"/_api/job/", (agMiscUtils:toBinary(JodId))/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path). % 返回具有特定状态的工作结果ID % GET /_api/job/{type}#by-type @@ -132,9 +131,9 @@ getAsyncJobStatus(PoolNameOrSocket, JodId) -> % 400:如果未指定type或值无效,则返回。 getAsyncJobList(PoolNameOrSocket, Type) -> Path = <<"/_api/job/", (agMiscUtils:toBinary(Type))/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path). getAsyncJobList(PoolNameOrSocket, Type, Count) -> Path = <<"/_api/job/", (agMiscUtils:toBinary(Type))/binary, "?count=", (agMiscUtils:toBinary(Count))/binary>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined). + agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path). diff --git a/src/agApi/agBulkImportExport.erl b/src/agApi/agBulkImportExport.erl index 7a3aa5a..eb8a061 100644 --- a/src/agApi/agBulkImportExport.erl +++ b/src/agApi/agBulkImportExport.erl @@ -57,9 +57,9 @@ % 500:如果服务器无法为没有用户定义密钥的文档自动生成文档密钥(密钥错误),则返回500。 docImport(PoolNameOrSocket, ListOfList, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), - Path = <<"/_api/import", QueryBinary/binary>>, - BodyStr = <<<<(jiffy:encode(OneList))/binary, "\n">> || OneList <- ListOfList>>, - agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). + Path = <<"/_api/import">>, + BodyStr = <<<<(eVPack:encodeBin(OneList))/binary, "\n">> || OneList <- ListOfList>>, + agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, QueryPars, ?AgDefHeader, BodyStr). % 从JSON导入文档 % POST /_api/import#json @@ -101,9 +101,9 @@ docImport(PoolNameOrSocket, ListOfList, QueryPars) -> jsonImport(PoolNameOrSocket, MapDataList, QueryPars) -> case lists:keyfind(type, 1, QueryPars) of {type, list} -> - BodyStr = jiffy:encode(MapDataList); + BodyStr = eVPack:encodeBin(MapDataList); {type, documents} -> - BodyStr = <<<<(jiffy:encode(OneList))/binary, "\n">> || OneList <- MapDataList>>; + BodyStr = <<<<(eVPack:encodeBin(OneList))/binary, "\n">> || OneList <- MapDataList>>; _ -> BodyStr = MapDataList end, @@ -229,5 +229,5 @@ jsonImport(PoolNameOrSocket, MapDataList, QueryPars) -> % 501:如果在群集协调器上调用此API,则服务器将使用HTTP 501进行响应。 docExport(PoolNameOrSocket, CollName, MapData) -> Path = <<"/_api/export?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). \ No newline at end of file diff --git a/src/agApi/agCollections.erl b/src/agApi/agCollections.erl index b4d03c0..d6054d6 100644 --- a/src/agApi/agCollections.erl +++ b/src/agApi/agCollections.erl @@ -92,13 +92,13 @@ % HTTP 200 newColl(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/collection">>, [], BodyStr). newColl(PoolNameOrSocket, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/collection", QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). % 删除收藏 @@ -231,7 +231,7 @@ collFigures(PoolNameOrSocket, CollName) -> % eg: MapData = #{'_key' => testkey, value => 23} collResponsibleShard(PoolNameOrSocket, CollName, MapData) -> Path = <<"/_api/collection/", CollName/binary, "/responsibleShard">>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], BodyStr). % 返回集合的分片ID @@ -351,7 +351,7 @@ loadColl(PoolNameOrSocket, CollName) -> agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], undefined). loadColl(PoolNameOrSocket, CollName, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_api/collection/", CollName/binary, "/load">>, [], BodyStr). % 卸载集合 @@ -421,7 +421,7 @@ collLoadIndexesIntoMemory(PoolNameOrSocket, CollName) -> % 404:如果集合名称未知,则 返回HTTP 404。 collChangeProps(PoolNameOrSocket, CollName, MapData) -> Path = <<"/_api/collection/", CollName/binary, "/properties">>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 重命名集合 @@ -446,7 +446,7 @@ collChangeProps(PoolNameOrSocket, CollName, MapData) -> % 404:如果集合名称未知,则 返回HTTP 404。 renameColl(PoolNameOrSocket, OldName, NewName) -> Path = <<"/_api/collection/", OldName/binary, "/rename">>, - NameStr = jiffy:encode(NewName), + NameStr = eVPack:encodeBin(NewName), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], <<"{\"name\":", NameStr/binary, "}">>). % 旋转收藏夹的日记 diff --git a/src/agApi/agDbMgr.erl b/src/agApi/agDbMgr.erl index 90c3e41..664338e 100644 --- a/src/agApi/agDbMgr.erl +++ b/src/agApi/agDbMgr.erl @@ -79,7 +79,7 @@ allDbs(PoolNameOrSocket) -> % 403:如果请求未在_system数据库中执行,则返回。 % 409:如果具有指定名称的数据库已经存在,则返回。 newDb(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/database">>, [], BodyStr, true). % 删除现有数据库 diff --git a/src/agApi/agDocuments.erl b/src/agApi/agDocuments.erl index 9e4411a..58de825 100644 --- a/src/agApi/agDocuments.erl +++ b/src/agApi/agDocuments.erl @@ -168,13 +168,13 @@ getDocHead(PoolNameOrSocket, CollName, Key, Headers) -> % 409:如果在索引属性中具有相同限定词的文档与现有文档发生冲突并因此违反了该唯一约束,则在单个文档的情况下返回409。在这种情况下,响应主体包含一个错误文档。 newDoc(PoolNameOrSocket, CollName, MapData) -> Path = <<"/_api/document/", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). newDoc(PoolNameOrSocket, CollName, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/document/", CollName/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). % 替换文档 @@ -212,19 +212,19 @@ newDoc(PoolNameOrSocket, CollName, MapData, QueryPars) -> % 412:如果违反了前提条件,则返回。该响应还将在_rev 属性中包含找到的文档的当前修订。此外,将返回属性_id和_key。 replaceDoc(PoolNameOrSocket, CollName, Key, MapData) -> Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). replaceDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). replaceDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars, Headers) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, Headers, BodyStr). % 更新文档 @@ -265,19 +265,19 @@ replaceDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars, Headers) -> % 412:如果违反了前提条件,则返回。该响应还将在_rev 属性中包含找到的文档的当前修订。此外,将返回属性_id和_key。 updateDoc(PoolNameOrSocket, CollName, Key, MapData) -> Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). updateDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). updateDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars, Headers) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, Headers, BodyStr). % 删除文档 @@ -337,7 +337,7 @@ delDoc(PoolNameOrSocket, CollName, Key, QueryPars, Headers) -> getDocs(PoolNameOrSocket, CollName, KeyOrMapDataList) -> QueryBinary = agMiscUtils:spellQueryPars([{onlyget, true}]), Path = <<"/_api/document/", CollName/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(KeyOrMapDataList), + BodyStr = eVPack:encodeBin(KeyOrMapDataList), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). getDocs(PoolNameOrSocket, CollName, KeyOrMapDataList, QueryPars) -> @@ -350,7 +350,7 @@ getDocs(PoolNameOrSocket, CollName, KeyOrMapDataList, QueryPars) -> end, QueryBinary = agMiscUtils:spellQueryPars(LastQueryPars), Path = <<"/_api/document/", CollName/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(KeyOrMapDataList), + BodyStr = eVPack:encodeBin(KeyOrMapDataList), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 创建多个文档 @@ -385,13 +385,13 @@ getDocs(PoolNameOrSocket, CollName, KeyOrMapDataList, QueryPars) -> % 按照MapDataList的顺序返回执行结果 正确或者错误 newDocs(PoolNameOrSocket, CollName, MapDataList) -> Path = <<"/_api/document/", CollName/binary>>, - BodyStr = jiffy:encode(MapDataList), + BodyStr = eVPack:encodeBin(MapDataList), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). newDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/document/", CollName/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapDataList), + BodyStr = eVPack:encodeBin(MapDataList), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). % 替换多个文件 @@ -421,13 +421,13 @@ newDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> % 404:如果找不到集合,则返回。 replaceDocs(PoolNameOrSocket, CollName, MapDataList) -> Path = <<"/_api/document/", CollName/binary>>, - BodyStr = jiffy:encode(MapDataList), + BodyStr = eVPack:encodeBin(MapDataList), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). replaceDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/document/", CollName/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapDataList), + BodyStr = eVPack:encodeBin(MapDataList), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 更新多个文件 @@ -460,13 +460,13 @@ replaceDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> % 404:如果找不到集合,则返回。 updateDocs(PoolNameOrSocket, CollName, MapDataList) -> Path = <<"/_api/document/", CollName/binary>>, - BodyStr = jiffy:encode(MapDataList), + BodyStr = eVPack:encodeBin(MapDataList), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). updateDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/document/", CollName/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapDataList), + BodyStr = eVPack:encodeBin(MapDataList), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). % 删除多个文件 @@ -490,11 +490,11 @@ updateDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> % 404:如果找不到集合,则返回。在这种情况下,响应主体包含一个错误文档。 delDocs(PoolNameOrSocket, CollName, KeyOrMapDataList) -> Path = <<"/_api/document/", CollName/binary, "/">>, - BodyStr = jiffy:encode(KeyOrMapDataList), + BodyStr = eVPack:encodeBin(KeyOrMapDataList), agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], BodyStr). delDocs(PoolNameOrSocket, CollName, KeyOrMapDataList, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/document/", CollName/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(KeyOrMapDataList), + BodyStr = eVPack:encodeBin(KeyOrMapDataList), agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], BodyStr). diff --git a/src/agApi/agFoxxServices.erl b/src/agApi/agFoxxServices.erl index dfde519..527cc71 100644 --- a/src/agApi/agFoxxServices.erl +++ b/src/agApi/agFoxxServices.erl @@ -85,7 +85,7 @@ getFoxxService(PoolNameOrSocket, Mount) -> installFoxx(PoolNameOrSocket, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/foxx", QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). % 卸载服务 @@ -130,7 +130,7 @@ uninstallFoxx(PoolNameOrSocket, QueryPars) -> replaceFoxx(PoolNameOrSocket, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/foxx/service", QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 升级服务 @@ -161,7 +161,7 @@ replaceFoxx(PoolNameOrSocket, MapData, QueryPars) -> upgradeFoxx(PoolNameOrSocket, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/foxx/service", QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). % Foxx服务配置/依赖关系 @@ -193,7 +193,7 @@ getFoxxConfig(PoolNameOrSocket, QueryPars) -> updateFoxxConfig(PoolNameOrSocket, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/foxx/configuration", QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). % 替换配置选项 @@ -209,7 +209,7 @@ updateFoxxConfig(PoolNameOrSocket, MapData, QueryPars) -> replaceFoxxConfig(PoolNameOrSocket, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/foxx/configuration", QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 获取依赖项选项 @@ -239,7 +239,7 @@ getFoxxDependencies(PoolNameOrSocket, QueryPars) -> updateFoxxDependencies(PoolNameOrSocket, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/foxx/dependencies", QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). % 替换依赖项选项 @@ -255,7 +255,7 @@ updateFoxxDependencies(PoolNameOrSocket, MapData, QueryPars) -> replaceFoxxDependencies(PoolNameOrSocket, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/foxx/dependencies", QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % Foxx服务杂项 @@ -288,7 +288,7 @@ getFoxxScripts(PoolNameOrSocket, QueryPars) -> runFoxxScripts(PoolNameOrSocket, ScriptName, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/foxx/scripts/", ScriptName/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). % 运行服务测试 diff --git a/src/agApi/agGeneralGraphs.erl b/src/agApi/agGeneralGraphs.erl index 597b384..83ca62b 100644 --- a/src/agApi/agGeneralGraphs.erl +++ b/src/agApi/agGeneralGraphs.erl @@ -77,13 +77,13 @@ graphList(PoolNameOrSocket) -> % errorNum:发生错误的ArangoDB错误号。 % errorMessage:为此错误创建的消息。 newGraph(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/gharial">>, [], BodyStr). newGraph(PoolNameOrSocket, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial", QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). % 获取图表 @@ -185,7 +185,7 @@ vertexCollList(PoolNameOrSocket, GraphName) -> %% MapData = #{"collection" => "otherVertices"} addVertexColl(PoolNameOrSocket, GraphName, MapData) -> Path = <<"/_api/gharial/", GraphName/binary, "/vertex">>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). % 从图形中删除额外顶点集合。 @@ -283,7 +283,7 @@ edgeDefList(PoolNameOrSocket, GraphName) -> % errorMessage:为此错误创建的消息。 addEdgeDef(PoolNameOrSocket, GraphName, MapData) -> Path = <<"/_api/gharial/", GraphName/binary, "/edge">>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). % 替换现有的边缘定义 @@ -327,13 +327,13 @@ addEdgeDef(PoolNameOrSocket, GraphName, MapData) -> % EdgeDefName 名字 要在定义列表中存在 MapData中的collection 也要存在 只是替换 from to 中的集合 replaceEdgeDef(PoolNameOrSocket, GraphName, EdgeDefName, MapData) -> Path = <<"/_api/gharial/", GraphName/binary, "/edge/", EdgeDefName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). replaceEdgeDef(PoolNameOrSocket, GraphName, EdgeDefName, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial/", GraphName/binary, "/edge/", EdgeDefName/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 从图形中删除边缘定义 @@ -409,13 +409,13 @@ delEdgeDef(PoolNameOrSocket, GraphName, EdgeDefName, QueryPars) -> % errorMessage:为此错误创建的消息。 newVertex(PoolNameOrSocket, GraphName, CollName, MapData) -> Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). newVertex(PoolNameOrSocket, GraphName, CollName, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). % 获取现有顶点 @@ -523,19 +523,19 @@ getVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, QueryPars, Headers) % errorMessage:为此错误创建的消息。 updateVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData) -> Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). updateVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). updateVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData, QueryPars, Headers) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, Headers, BodyStr). % 替换现有的顶点 @@ -588,19 +588,19 @@ updateVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData, QueryPar % errorMessage:为此错误创建的消息。 replaceVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData) -> Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). replaceVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). replaceVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData, QueryPars, Headers) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, Headers, BodyStr). % 从图中删除顶点 @@ -704,13 +704,13 @@ delVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, QueryPars, Headers) % errorMessage:为此错误创建的消息。 newEdge(PoolNameOrSocket, GraphName, CollName, MapData) -> Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). newEdge(PoolNameOrSocket, GraphName, CollName, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). % 获得边 @@ -819,19 +819,19 @@ getEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, QueryPars, Headers) -> % errorMessage:为此错误创建的消息。 updateEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData) -> Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). updateEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). updateEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData, Headers, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, Headers, BodyStr). @@ -887,19 +887,19 @@ updateEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData, Headers, Que % errorMessage:为此错误创建的消息。 replaceEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData) -> Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). replaceEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). replaceEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData, QueryPars, Headers) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, Headers, BodyStr). % 从图形中删除边 diff --git a/src/agApi/agHotBackup.erl b/src/agApi/agHotBackup.erl index 3e10860..82c7519 100644 --- a/src/agApi/agHotBackup.erl +++ b/src/agApi/agHotBackup.erl @@ -30,7 +30,7 @@ % 400:如果使用错误的参数或除之外的任何HTTP方法调用了create命令POST,则返回HTTP 400。具体细节在返回的错误文档中有详细说明。 % 408:如果操作无法在超时时间内获得全局事务锁定,则返回HTTP 408。 newBackup(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_admin/backup/create">>, [], BodyStr). % 从本地备份还原 @@ -42,7 +42,7 @@ newBackup(PoolNameOrSocket, MapData) -> % 200:如果可以恢复备份,则返回。请注意,单个服务器和群集之间不可避免存在差异。在单个服务器中,请求成功返回,但是还原仅在之后执行。在集群中,仅在成功完成还原操作后才返回请求。群集行为显然是所需的行为,但是在单个实例中,无法在重新启动期间保持连接打开。 % 400:如果使用错误的参数或除以外的任何HTTP方法调用了restore命令POST,则返回HTTP 400。具体细节在返回的错误文档中有详细说明。 restoreBackup(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_admin/backup/restore">>, [], BodyStr). % 删除特定的本地备份 @@ -55,7 +55,7 @@ restoreBackup(PoolNameOrSocket, MapData) -> % 400:如果使用错误的参数或除以外的任何HTTP方法调用delete命令POST,则返回HTTP 400。 % 404:如果id找不到与该标识符相对应的备份。 delBackup(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_admin/backup/delete">>, [], BodyStr). % 列出所有本地备份 @@ -93,7 +93,7 @@ getBackupList(PoolNameOrSocket) -> % 401:如果对转储存储库的身份验证失败,则返回HTTP 400。 % 404:如果id 找不到对应于标识符的备份,或者没有已知的上载操作uploadId。 uploadBackup(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_admin/backup/upload">>, [], BodyStr). % 下载特定的本地备份 @@ -112,5 +112,5 @@ uploadBackup(PoolNameOrSocket, MapData) -> % 401:如果对转储存储库的身份验证失败,则返回HTTP 401。 % 404:如果id 找不到与该标识符相对应的备份,或者如果没有已知的与的下载操作downloadId。 downloadBackup(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_admin/backup/download">>, [], BodyStr). diff --git a/src/agApi/agIndexes.erl b/src/agApi/agIndexes.erl index 67e1363..91e2925 100644 --- a/src/agApi/agIndexes.erl +++ b/src/agApi/agIndexes.erl @@ -87,7 +87,7 @@ getIndexInfo(PoolNameOrSocket, IndexId) -> % 404:如果集合未知,则返回HTTP 404。 newIndex(PoolNameOrSocket, CollName, MapData) -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr). % 删除索引 @@ -139,11 +139,11 @@ newIndexOfHash(PoolNameOrSocket, CollName, MapData) -> case MapData of #{type := <<"hash">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); #{<<"type">> := <<"hash">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); _ -> {error, param} @@ -208,11 +208,11 @@ newIndexOfSkipList(PoolNameOrSocket, CollName, MapData) -> case MapData of #{type := <<"skiplist">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); #{<<"type">> := <<"skiplist">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); _ -> {error, param} @@ -243,11 +243,11 @@ newIndexOfPersistent(PoolNameOrSocket, CollName, MapData) -> case MapData of #{type := <<"persistent">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); #{<<"type">> := <<"persistent">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); _ -> {error, param} @@ -273,11 +273,11 @@ newIndexOfTtl(PoolNameOrSocket, CollName, MapData) -> case MapData of #{type := <<"ttl">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); #{<<"type">> := <<"ttl">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); _ -> {error, param} @@ -305,11 +305,11 @@ newIndexOfGeo(PoolNameOrSocket, CollName, MapData) -> case MapData of #{type := <<"geo">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); #{<<"type">> := <<"geo">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); _ -> {error, param} @@ -377,11 +377,11 @@ newIndexOfFulltext(PoolNameOrSocket, CollName, MapData) -> case MapData of #{type := <<"fulltext">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); #{<<"type">> := <<"fulltext">>} -> Path = <<"/_api/index?collection=", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr); _ -> {error, param} diff --git a/src/agApi/agMiscFuns.erl b/src/agApi/agMiscFuns.erl index 9138159..f3f247b 100644 --- a/src/agApi/agMiscFuns.erl +++ b/src/agApi/agMiscFuns.erl @@ -115,7 +115,7 @@ getWalProps(PoolNameOrSocket) -> % 200:操作成功返回。 % 405:使用无效的HTTP方法时返回。 setWalProps(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_admin/wal/properties">>, BodyStr, undefined). % 返回有关当前正在运行的事务的信息 @@ -171,7 +171,7 @@ curDbTime(PoolNameOrSocket) -> % path:此请求的相对路径 % rawRequestBody:已发送字符的数字列表 echo(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_admin/echo">>, [], BodyStr). % 返回数据库的版本。 diff --git a/src/agApi/agReplication.erl b/src/agApi/agReplication.erl index e4c612e..6d3137b 100644 --- a/src/agApi/agReplication.erl +++ b/src/agApi/agReplication.erl @@ -72,7 +72,7 @@ getRepInventory(PoolNameOrSocket, QueryPars) -> % 400:如果ttl值无效,或者在Coordinator上未指定DBserver属性或该属性非法,则返回400 。 % 405:使用无效的HTTP方法时返回。 newRepBatch(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/replication/batch">>, [], BodyStr). % 删除现有的转储批次固定链接 @@ -111,7 +111,7 @@ delRepBatch(PoolNameOrSocket, BatchId) -> % 为了获得相同的数据状态,复制客户端应按照提供的顺序使用转储结果的各个部分。 prolongRepBatch(PoolNameOrSocket, BatchId, MapData) -> Path = <<"/_api/replication/batch/", (agMiscUtils:toBinary(BatchId))/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 返回集合的数据 @@ -277,7 +277,7 @@ getRepDoc(PoolNameOrSocket, QueryPars) -> % 500:如果同步期间发生错误,则返回。 % 501:在集群中的协调器上调用此操作时返回。 startRepSync(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_api/replication/sync">>, [], BodyStr). % 返回集合和索引的集群清单 @@ -474,12 +474,12 @@ getRepApplierConfig(PoolNameOrSocket, QueryPars) -> % 405:使用无效的HTTP方法时返回。 % 500:如果组装响应时发生错误,则返回500。 setRepApplierConfig(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_api/replication/applier-config">>, [], BodyStr). setRepApplierConfig(PoolNameOrSocket, MapData, QueryPars) -> QueryBinary = agMiscUtils:spellQueryPars(QueryPars), - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_api/replication/applier-config", QueryBinary/binary>>, [], BodyStr). % 启动复制应用程序 @@ -631,7 +631,7 @@ getRepApplierState(PoolNameOrSocket, QueryPars) -> % 500:如果在同步过程中或开始连续复制时发生错误,则返回。 % 501:在集群中的协调器上调用此操作时返回。 changeRepMakeSlave(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_api/replication/make-slave">>, [], BodyStr). %其他复制命令 diff --git a/src/agApi/agTasks.erl b/src/agApi/agTasks.erl index ca59ff1..ece588b 100644 --- a/src/agApi/agTasks.erl +++ b/src/agApi/agTasks.erl @@ -54,7 +54,7 @@ getTask(PoolNameOrSocket, TaskId) -> % error:在这种情况下为false % 400:如果帖子正文不正确,则返回HTTP 400。 newTask(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/tasks">>, [], BodyStr). % 注册具有预定义ID的新任务;与负载均衡器不兼容 @@ -72,7 +72,7 @@ newTask(PoolNameOrSocket, MapData) -> % 400:如果任务ID已经存在或其余主体不正确,则返回HTTP 400。 newTask(PoolNameOrSocket, TaskId, MapData) -> Path = <<"/_api/tasks/", (agMiscUtils:toBinary(TaskId))/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 删除一个当前活动的服务器任务 diff --git a/src/agApi/agTransactions.erl b/src/agApi/agTransactions.erl index 6fdea32..9322b41 100644 --- a/src/agApi/agTransactions.erl +++ b/src/agApi/agTransactions.erl @@ -79,7 +79,7 @@ % 400:如果事务规范丢失或格式不正确,则服务器将使用HTTP 400进行响应。 % 404:如果事务规范包含未知集合,则服务器将使用HTTP 404进行响应。 beginTransaction(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/transaction/begin">>, [], BodyStr). % 提取服务器端事务的状态 @@ -197,7 +197,7 @@ getTransactionList(PoolNameOrSocket) -> % 404:如果事务规范包含未知集合,则服务器将使用HTTP 404进行响应。 % 500:用户抛出的异常将使服务器以HTTP 500的返回码进行响应 executeTransaction(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/transaction">>, [], BodyStr). diff --git a/src/agApi/agUserMgr.erl b/src/agApi/agUserMgr.erl index 3804736..bf69221 100644 --- a/src/agApi/agUserMgr.erl +++ b/src/agApi/agUserMgr.erl @@ -28,7 +28,7 @@ % 403:如果您没有访问服务器访问级别,则返回。 % 409:如果已经存在同名用户,则返回。 newUser(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/user">>, [], BodyStr). % 设置数据库访问级别。 @@ -48,7 +48,7 @@ newUser(PoolNameOrSocket, MapData) -> % 403:如果您没有访问服务器访问级别,则返回。 setUserDbAccessLevel(PoolNameOrSocket, UserName, DbName, MapData) -> Path = <<"/_api/user/", UserName/binary, "/database/", DbName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 设置收集访问级别。 @@ -70,7 +70,7 @@ setUserDbAccessLevel(PoolNameOrSocket, UserName, DbName, MapData) -> % 403:如果您没有访问服务器访问级别,则返回。 setUserCollAccessLevel(PoolNameOrSocket, UserName, DbName, CollName, MapData) -> Path = <<"/_api/user/", UserName/binary, "/database/", DbName/binary, "/", CollName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 清除数据库访问级别,恢复为默认访问级别 @@ -174,7 +174,7 @@ getUserCollAccessLevel(PoolNameOrSocket, UserName, DbName, CollName) -> % 404:指定的用户不存在 replaceUser(PoolNameOrSocket, UserName, MapData) -> Path = <<"/_api/user/", UserName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 修改现有用户的属性 @@ -194,7 +194,7 @@ replaceUser(PoolNameOrSocket, UserName, MapData) -> % 404:指定的用户不存在 updateUser(PoolNameOrSocket, UserName, MapData) -> Path = <<"/_api/user/", UserName/binary>>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). % 永久删除用户。 diff --git a/src/agApi/agViews.erl b/src/agApi/agViews.erl index 87c8f95..a5562ae 100644 --- a/src/agApi/agViews.erl +++ b/src/agApi/agViews.erl @@ -64,7 +64,7 @@ % 400:如果name或type属性丢失或无效,则 返回HTTP 400错误。 % 409:如果已经存在一个名为name的视图,则返回HTTP 409错误。 newView(PoolNameOrSocket, MapData) -> - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/view">>, [], BodyStr). % 返回一个视图 @@ -140,7 +140,7 @@ getViewProps(PoolNameOrSocket, ViewName) -> % 404:如果视图名称未知,则返回HTTP 404。 changeViewAllProps(PoolNameOrSocket, ViewName, MapData) -> Path = <<"/_api/view/", ViewName/binary, "/properties">>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr). % 部分更改ArangoSearch视图的属性 @@ -178,7 +178,7 @@ changeViewAllProps(PoolNameOrSocket, ViewName, MapData) -> % 404:如果视图名称未知,则返回HTTP 404。 changeViewPartProps(PoolNameOrSocket, ViewName, MapData) -> Path = <<"/_api/view/", ViewName/binary, "/properties">>, - BodyStr = jiffy:encode(MapData), + BodyStr = eVPack:encodeBin(MapData), agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr). % 重命名视图 @@ -197,7 +197,7 @@ changeViewPartProps(PoolNameOrSocket, ViewName, MapData) -> % 404:如果视图名称未知,则返回HTTP 404。 renameView(PoolNameOrSocket, ViewName, NewViewName) -> Path = <<"/_api/view/", ViewName/binary, "/rename">>, - NameStr = jiffy:encode(NewViewName), + NameStr = eVPack:encodeBin(NewViewName), agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], <<"{\"name\":", NameStr/binary, "}">>). % 删除视图 diff --git a/src/agVstCli/agTcpAgencyIns.erl b/src/agVstCli/agTcpAgencyIns.erl index 00073fd..6bb8d1b 100644 --- a/src/agVstCli/agTcpAgencyIns.erl +++ b/src/agVstCli/agTcpAgencyIns.erl @@ -52,9 +52,9 @@ handleMsg(#agReq{method = Method, path = Path, queryPars = QueryPars, headers = end end end; -handleMsg({tcp, _Socket, Data}, SrvState, - #cliState{revStatus = RevStatus, backlogNum = BacklogNum, messageId = MessageId, chunkIdx = ChunkIdx, chunkSize = ChunkSize, chunkBuffer = ChunkBuffer} = CliState) -> - case agVstProto:response(RevStatus, 0, MessageId, ChunkIdx, ChunkSize, ChunkBuffer, Data) of +handleMsg({tcp, _Socket, DataBuffer}, SrvState, + #cliState{revStatus = RevStatus, backlogNum = BacklogNum, messageId = OldMessageId, chunkIdx = OldChunkIdx, chunkSize = OldChunkSize, chunkBuffer = OldChunkBuffer} = CliState) -> + case agVstProto:response(RevStatus, 0, OldMessageId, OldChunkIdx, OldChunkSize, OldChunkBuffer, DataBuffer) of {?AgUndef, DoneCnt} -> {ok, SrvState, CliState#cliState{revStatus = ?AgUndef, backlogNum = BacklogNum - DoneCnt, chunkBuffer = <<>>}}; {?AgCBodyStart, DoneCnt, MessageId, ChunkIdx, ChunkSize, ChunkBuffer} -> diff --git a/src/agVstCli/agVstCli.erl b/src/agVstCli/agVstCli.erl index 80788bd..152985d 100644 --- a/src/agVstCli/agVstCli.erl +++ b/src/agVstCli/agVstCli.erl @@ -7,7 +7,8 @@ -export([ %% Common Request API - callAgency/6 + callAgency/3 + , callAgency/6 , callAgency/7 , callAgency/8 , castAgency/6 @@ -33,6 +34,11 @@ , receiveSslData/2 ]). + +-spec callAgency(poolNameOrSocket(), method(), path()) -> term() | {error, term()}. +callAgency(PoolNameOrSocket, Method, Path) -> + callAgency(PoolNameOrSocket, Method, Path, #{}, #{}, <<>>, false, ?AgDefTimeout). + -spec callAgency(poolNameOrSocket(), method(), path(), queryPars(), headers(), body()) -> term() | {error, term()}. callAgency(PoolNameOrSocket, Method, Path, QueryPars, Headers, Body) -> callAgency(PoolNameOrSocket, Method, Path, QueryPars, Headers, Body, false, ?AgDefTimeout). @@ -43,7 +49,7 @@ callAgency(PoolNameOrSocket, Method, Path, QueryPars, Headers, Body, IsSystem) - -spec callAgency(poolNameOrSocket(), method(), path(), queryPars(), headers(), body(), boolean(), timeout()) -> term() | {error, atom()}. callAgency(PoolNameOrSocket, Method, Path, QueryPars, Headers, Body, IsSystem, Timeout) -> - case castAgency(PoolNameOrSocket, Method, Path, QueryPars, Headers, Body, self(), IsSystem, Timeout) of + case castAgency(PoolNameOrSocket, Method, Path, QueryPars, Headers, eVPack:encodeBin(Body), self(), IsSystem, Timeout) of {waitRRT, RequestId, MonitorRef} -> receiveReqRet(RequestId, MonitorRef); {error, _Reason} = Err -> @@ -123,6 +129,7 @@ receiveReqRet(RequestId, MonitorRef) -> {error, Err} -> Err; _ -> + ?AgWarn(tt, "IMY*************~p~n", [Reply]), {[1, 2, StatusCode, HeaderMap], BodyMap} = eVPack:decodeAll(Reply), {StatusCode, BodyMap, HeaderMap} end;