arangodb erlang数据库驱动
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

961 Zeilen
60 KiB

vor 4 Jahren
  1. -module(agGeneralGraphs).
  2. -include("erlArango.hrl").
  3. -compile(inline).
  4. -compile({inline_size, 128}).
  5. -compile([export_all, nowarn_export_all]).
  6. %% doc_address:https://www.arangodb.com/docs/stable/http/gharial.html
  7. % 通用图
  8. % 本章介绍了多集合图形模块的REST接口。它允许您定义分布在多个边缘和文档集合中的图形。无需在查询中包括引用的集合,此模块将为您处理。
  9. % 管理图表
  10. % 列出图形模块已知的所有图形。
  11. % GET /_api/gharial
  12. % 列出此数据库中存储的所有图形。
  13. % 如果模块可用并且可以列出图形,则返回HTTP 200。
  14. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  15. % code:响应代码。
  16. % 图表:
  17. % graph:有关新创建的图的信息
  18. % name:图形名称
  19. % edgeDefinitions:图形关系的定义数组。每个都有以下类型:
  20. % orphanCollections:其他顶点集合的数组。这些集合中的文档在此图中没有边。
  21. % numberOfShards:为图中的每个新集合创建的分片数。
  22. % _id:此图的内部ID值。
  23. % _rev:此图的修订版。可用于确保不覆盖对该图的并发修改。
  24. % ReplicationFactor:图形中每个新集合使用的复制因子。
  25. % isSmart:标记图形是否为SmartGraph(仅限企业版)。
  26. % smartGraphAttribute:智能图例中的分片属性名称(仅企业版)
  27. graphList(PoolNameOrSocket) ->
  28. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/gharial">>, [], undefined).
  29. % 创建一个图
  30. % 在图形模块中创建一个新图形。
  31. % POST /_api/gharial
  32. % 查询参数
  33. % waitForSync(可选):定义请求是否应该等待,直到所有内容都同步到光盘。将更改成功响应代码。
  34. % 具有以下属性的JSON对象是必需的:
  35. % name:图形名称。
  36. % edgeDefinitions:图形关系的定义数组。每个都有以下类型:
  37. % collection : 边集合名
  38. % from: from 顶点集合名数组、
  39. % to : to 顶点集合名数组
  40. % orphanCollections:其他顶点集合的数组。这些集合中的文档在此图中没有边。
  41. % isSmart:定义创建的图形是否应该是智能的。这仅在企业版中有效。
  42. % options:一个JSON对象,用于定义用于在此图中创建集合的选项。它可以包含以下属性:
  43. % smartGraphAttribute:仅在企业版中有效,如果isSmart为true,则为必需。用于聪明地分割图的顶点的属性名称。此SmartGraph中的每个顶点都必须具有此属性。以后无法修改。
  44. % numberOfShards:此图中每个集合使用的分片数。以后无法修改。
  45. % replicationFactor:最初为此图创建集合时使用的复制因子。可以设置为"satellite"创建SatelliteGraph,将忽略 numberOfShards,minReplicationFactor和writeConcern。
  46. % writeConcern:对图中的新集合进行关注。它确定在不同的DB服务器上同步每个分片需要多少个副本。如果集群中的副本数量很少,那么分片将拒绝写入。但是,具有足够最新副本的分片写入将同时成功。writeConcern的值 不能大于ReplicationFactor。(仅集群)
  47. % 图的创建需要图的名称和其边缘的定义。 另请参见边缘定义。
  48. % 如果可以创建图形并且为_graphs集合启用了waitForSync 或在请求中指定了图形,则返回HTTP 201。响应主体包含已存储的图形配置。
  49. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  50. % code:响应代码。
  51. % graph:有关新创建的图的信息。
  52. % 如果可以创建图形并且为该_graphs集合禁用了waitForSync,并且未在请求中给出,则返回HTTP 202。响应主体包含已存储的图形配置。
  53. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  54. % code:响应代码。
  55. % graph:有关新创建的图的信息。
  56. % HTTP 400如果请求的格式错误,则返回。
  57. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  58. % code:响应代码。
  59. % errorNum:发生错误的ArangoDB错误号。
  60. % errorMessage:为此错误创建的消息。
  61. % HTTP 403如果您的用户权限不足,则返回。为了创建图,您至少需要具有以下特权:
  62. % Administrate 访问数据库。
  63. % Read Only
  64. % 访问此图中使用的每个集合。
  65. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  66. % code:响应代码。
  67. % errorNum:发生错误的ArangoDB错误号。
  68. % errorMessage:为此错误创建的消息。
  69. % HTTP 409如果存储图形时发生冲突,则返回。如果已经存储了具有该名称的图形,或者存在一个边缘定义具有相同的边缘集合但在任何其他图形中使用了不同的签名,则可能会发生这种情况 。
  70. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  71. % code:响应代码。
  72. % errorNum:发生错误的ArangoDB错误号。
  73. % errorMessage:为此错误创建的消息。
  74. newGraph(PoolNameOrSocket, MapData) ->
  75. BodyStr = jiffy:encode(MapData),
  76. agHttpCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/gharial">>, [], BodyStr).
  77. newGraph(PoolNameOrSocket, MapData, QueryPars) ->
  78. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  79. Path = <<"/_api/gharial", QueryBinary/binary>>,
  80. BodyStr = jiffy:encode(MapData),
  81. agHttpCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr).
  82. % 获取图表
  83. % GET /_api/gharial/{graph}
  84. % 路径参数
  85. % 图(必填):图的名称。
  86. % 选择给定图的信息。将返回边缘定义以及孤立集合。或如果图形不存在,则返回404。
  87. % HTTP 200如果可以找到该图,则返回该图。结果将具有以下格式:
  88. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  89. % code:响应代码。
  90. % graph:有关新创建的图的信息
  91. % HTTP 404如果找不到具有该名称的图形,则返回。
  92. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  93. % code:响应代码。
  94. % errorNum:发生错误的ArangoDB错误号。
  95. % errorMessage:为此错误创建的消息。
  96. getGraph(PoolNameOrSocket, GraphName) ->
  97. Path = <<"/_api/gharial/", GraphName/binary>>,
  98. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined).
  99. % 删除现有图
  100. % DELETE /_api/gharial/{graph}
  101. % 路径参数
  102. % 图(必填):图的名称。
  103. % 查询参数
  104. % dropCollections(可选):也删除该图的集合。只有在其他图形中未使用集合时,集合才会被删除。
  105. % 按名称删除现有图形对象。(可选)也可以删除其他图未使用的所有集合。
  106. % 201:如果可以删除该图并为该_graphs集合启用了waitForSync ,或者在请求中给出了该图,则返回该值。
  107. % 202:如果可以删除该图并且为该_graphs集合禁用了waitForSync,并且未在请求中给出,则返回该值。
  108. % HTTP 403如果您的用户权限不足,则返回。为了删除图,您至少需要具有以下特权:
  109. % Administrate 访问数据库。
  110. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  111. % code:响应代码。
  112. % errorNum:发生错误的ArangoDB错误号。
  113. % errorMessage:为此错误创建的消息。
  114. % HTTP 404如果找不到具有该名称的图形,则返回。
  115. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  116. % code:响应代码。
  117. % errorNum:发生错误的ArangoDB错误号。
  118. % errorMessage:为此错误创建的消息。
  119. delGraph(PoolNameOrSocket, GraphName) ->
  120. Path = <<"/_api/gharial/", GraphName/binary>>,
  121. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
  122. delGraph(PoolNameOrSocket, GraphName, QueryPars) ->
  123. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  124. Path = <<"/_api/gharial/", GraphName/binary, QueryBinary/binary>>,
  125. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
  126. % 列出此图中使用的所有顶点集合。
  127. % GET /_api/gharial/{graph}/vertex
  128. % 路径参数
  129. % graph(必填):图的名称。
  130. % 列出此图中的所有顶点集合。
  131. % 如果可以列出集合,则返回HTTP 200。
  132. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  133. % code:响应代码。
  134. % collections:此图中所有顶点集合的列表。在edgeDefinitions和孤儿中包括集合。
  135. % HTTP 404如果找不到具有该名称的图形,则返回。
  136. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  137. % code:响应代码。
  138. % errorNum:发生错误的ArangoDB错误号。
  139. % errorMessage:为此错误创建的消息。
  140. vertexCollList(PoolNameOrSocket, GraphName) ->
  141. Path = <<"/_api/gharial/", GraphName/binary, "/vertex">>,
  142. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined).
  143. % 向图中添加一个额外的顶点集合。
  144. % POST /_api/gharial/{graph}/vertex
  145. % 路径参数
  146. % graph(必填):图的名称。
  147. % 将顶点集合添加到图形的孤立集合中。如果该集合不存在,则将创建它。
  148. % 如果可以创建集合并为该_graphs集合启用waitForSync 或在请求中指定了HTTP,则返回HTTP 201。响应主体包含已存储的图形配置。
  149. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  150. % code:响应代码。
  151. % graph:有关修改后的图的信息。
  152. % 如果可以创建集合并且为该_graphs集合禁用了waitForSync 或在请求中指定了HTTP,则返回HTTP 202。响应主体包含已存储的图形配置。
  153. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  154. % code:响应代码。
  155. % graph:有关新创建的图的信息
  156. % HTTP 400如果请求的格式无效,则返回。
  157. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  158. % code:响应代码。
  159. % errorNum:发生错误的ArangoDB错误号。
  160. % errorMessage:为此错误创建的消息。
  161. % HTTP 403如果您的用户权限不足,则返回。为了修改图,您至少需要具有以下特权:
  162. % Administrate 访问数据库。
  163. % Read Only 访问此图中使用的每个集合。
  164. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  165. % code:响应代码。
  166. % errorNum:发生错误的ArangoDB错误号。
  167. % errorMessage:为此错误创建的消息。
  168. % HTTP 404如果找不到具有该名称的图形,则返回。
  169. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  170. % code:响应代码。
  171. % errorNum:发生错误的ArangoDB错误号。
  172. % errorMessage:为此错误创建的消息。
  173. %% MapData = #{"collection" => "otherVertices"}
  174. addVertexColl(PoolNameOrSocket, GraphName, MapData) ->
  175. Path = <<"/_api/gharial/", GraphName/binary, "/vertex">>,
  176. BodyStr = jiffy:encode(MapData),
  177. agHttpCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr).
  178. % 从图形中删除额外顶点集合。
  179. % DELETE /_api/gharial/{graph}/vertex/{collection}
  180. % 路径参数
  181. % graph(必填):图的名称。
  182. % collection(必填):顶点集合的名称。
  183. % 查询参数
  184. % dropCollection(可选):也删除集合。只有在其他图形中未使用集合时,集合才会被删除。
  185. % 如果未在其他任何图中使用顶点集合,则从图中删除顶点集合,并有选择地删除该集合。如果边缘定义中不再使用这些顶点集合,则只能删除不再属于这些定义的顶点集合。
  186. % HTTP 200如果成功从图形中删除了顶点集合并且waitForSync为true,则返回。
  187. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  188. % code:响应代码。
  189. % graph:有关新创建的图的信息
  190. % HTTP 202如果请求成功,但waitForSync为false,则返回。
  191. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  192. % code:响应代码。
  193. % graph:有关新创建的图的信息
  194. % HTTP 400如果顶点集合仍在边缘定义中使用,则返回。在这种情况下,它仍不能从图形中删除,必须先从边定义中删除。
  195. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  196. % code:响应代码。
  197. % errorNum:发生错误的ArangoDB错误号。
  198. % errorMessage:为此错误创建的消息。
  199. % HTTP 403如果您的用户权限不足,则返回。为了删除顶点,您至少需要具有以下特权:
  200. % Administrate 访问数据库。
  201. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  202. % code:响应代码。
  203. % errorNum:发生错误的ArangoDB错误号。
  204. % errorMessage:为此错误创建的消息。
  205. % HTTP 404如果找不到具有该名称的图形,则返回。
  206. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  207. % code:响应代码。
  208. % errorNum:发生错误的ArangoDB错误号。
  209. % errorMessage:为此错误创建的消息。
  210. delVertexColl(PoolNameOrSocket, GraphName, CollName) ->
  211. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary>>,
  212. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
  213. delVertexColl(PoolNameOrSocket, GraphName, CollName, QueryPars) ->
  214. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  215. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, QueryBinary/binary>>,
  216. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
  217. % 列出所有边缘定义
  218. % GET /_api/gharial/{graph}/edge
  219. % 路径参数
  220. % graph(必填):图的名称。
  221. % 列出此图中的所有边集合。
  222. % 如果可以列出边缘定义,则返回HTTP 200。
  223. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  224. % code:响应代码。
  225. % collections:此图中所有顶点集合的列表。在edgeDefinitions和孤儿中包括集合。
  226. % HTTP 404如果找不到具有该名称的图形,则返回。
  227. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  228. % code:响应代码。
  229. % errorNum:发生错误的ArangoDB错误号。
  230. % errorMessage:为此错误创建的消息。
  231. edgeDefList(PoolNameOrSocket, GraphName) ->
  232. Path = <<"/_api/gharial/", GraphName/binary, "/edge">>,
  233. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined).
  234. % 向图添加新的边定义
  235. % POST /_api/gharial/{graph}/edge
  236. % 路径参数
  237. % graph(必填):图的名称。
  238. % 具有以下属性的JSON对象是必需的:
  239. % collection:要使用的边缘集合的名称。
  240. % from:一个或多个可以包含源顶点的顶点集合。
  241. % to:一个或多个可以包含目标顶点的顶点集合。
  242. % 向图形添加其他边定义。
  243. % 这个边缘清晰度必须包含一个集合,并且每个的阵列从和到顶点集合。仅当未在任何其他图形中使用该定义或将其与完全相同的定义一起使用时,才可以添加边定义。在一个图中不可能存储从“ v1”到“ v2”的定义“ e”,而在另一张图中存储从“ v2”到“ v1”的定义“ e”。
  244. % HTTP 201如果可以成功添加定义并且为_graphs集合启用了waitForSync,则返回。响应主体包含已存储的图形配置。
  245. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  246. % code:响应代码。
  247. % graph:有关修改后的图的信息。
  248. % HTTP 202如果可以成功添加定义并且对该_graphs集合禁用了waitForSync,则返回。响应主体包含已存储的图形配置。
  249. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  250. % code:响应代码。
  251. % graph:有关修改后的图的信息。
  252. % HTTP 400如果无法添加定义,则返回。这可能是因为其格式错误,或者是在其他具有不同签名的图形中使用了该定义。
  253. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  254. % code:响应代码。
  255. % errorNum:发生错误的ArangoDB错误号。
  256. % errorMessage:为此错误创建的消息。
  257. % HTTP 403如果您的用户权限不足,则返回。为了修改图,您至少需要具有以下特权:
  258. % Administrate 访问数据库。
  259. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  260. % code:响应代码。
  261. % errorNum:发生错误的ArangoDB错误号。
  262. % errorMessage:为此错误创建的消息。
  263. % HTTP 404如果找不到具有该名称的图形,则返回。
  264. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  265. % code:响应代码。
  266. % errorNum:发生错误的ArangoDB错误号。
  267. % errorMessage:为此错误创建的消息。
  268. addEdgeDef(PoolNameOrSocket, GraphName, MapData) ->
  269. Path = <<"/_api/gharial/", GraphName/binary, "/edge">>,
  270. BodyStr = jiffy:encode(MapData),
  271. agHttpCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr).
  272. % 替换现有的边缘定义
  273. % PUT /_api/gharial/{graph}/edge/{definition}#definition
  274. % 路径参数
  275. % graph(必填):图的名称。
  276. % definition(必填):定义中使用的边集合的名称。
  277. %
  278. % 查询参数
  279. % waitForSync(可选):定义请求是否应等待直到同步到磁盘。
  280. % dropCollections(可选):也删除集合。只有在其他图形中未使用集合时,集合才会被删除。
  281. % 具有以下属性的JSON对象是必需的:
  282. % collection:要使用的边缘集合的名称。
  283. % from:一个或多个可以包含源顶点的顶点集合。
  284. % to:一个或多个可以包含目标顶点的顶点集合。
  285. % 更改一个特定的边定义。这将修改数据库中所有已知图中所有出现的该定义。
  286. % HTTP 201如果请求成功并且waitForSync为true,则返回。
  287. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  288. % code:响应代码。
  289. % graph:有关修改后的图的信息。
  290. % HTTP 202如果请求成功,但waitForSync为false,则返回。
  291. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  292. % code:响应代码。
  293. % graph:有关修改后的图的信息。
  294. % HTTP 400如果在图形中未找到具有此名称的边定义,或者新定义的格式不正确且无法使用,则返回。
  295. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  296. % code:响应代码。
  297. % errorNum:发生错误的ArangoDB错误号。
  298. % errorMessage:为此错误创建的消息。
  299. % HTTP 403如果您的用户权限不足,则返回。为了删除顶点,您至少需要具有以下特权:
  300. % Administrate 访问数据库。
  301. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  302. % code:响应代码。
  303. % errorNum:发生错误的ArangoDB错误号。
  304. % errorMessage:为此错误创建的消息。
  305. % HTTP 404如果找不到具有该名称的图形,则返回。
  306. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  307. % code:响应代码。
  308. % errorNum:发生错误的ArangoDB错误号。
  309. % errorMessage:为此错误创建的消息。
  310. % EdgeDefName 名字 要在定义列表中存在 MapData中的collection 也要存在 只是替换 from to 中的集合
  311. replaceEdgeDef(PoolNameOrSocket, GraphName, EdgeDefName, MapData) ->
  312. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", EdgeDefName/binary>>,
  313. BodyStr = jiffy:encode(MapData),
  314. agHttpCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr).
  315. replaceEdgeDef(PoolNameOrSocket, GraphName, EdgeDefName, MapData, QueryPars) ->
  316. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  317. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", EdgeDefName/binary, QueryBinary/binary>>,
  318. BodyStr = jiffy:encode(MapData),
  319. agHttpCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr).
  320. % 从图形中删除边缘定义
  321. % DELETE /_api/gharial/{graph}/edge/{definition}#definition
  322. % 路径参数
  323. % graph(必填):图的名称。
  324. % definition(必填):定义中使用的边集合的名称。
  325. % 查询参数
  326. % waitForSync(可选):定义请求是否应等待直到同步到磁盘。
  327. % dropCollections(可选):也删除集合。只有在其他图形中未使用集合时,集合才会被删除。
  328. % 从图形中删除一个边缘定义。这只会删除边缘集合,顶点集合保持不变,并且仍可以在查询中使用。
  329. % HTTP 201如果可以从图形中删除边缘定义并且waitForSync为true,则返回。
  330. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  331. % code:响应代码。
  332. % graph:有关修改后的图的信息。
  333. % HTTP 202如果可以从图形中删除边缘定义并且waitForSync为false,则返回。
  334. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  335. % code:响应代码。
  336. % graph:有关修改后的图的信息。
  337. % HTTP 403如果您的用户权限不足,则返回。为了删除顶点,您至少需要具有以下特权:
  338. % Administrate 访问数据库。
  339. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  340. % code:响应代码。
  341. % errorNum:发生错误的ArangoDB错误号。
  342. % errorMessage:为此错误创建的消息。
  343. % HTTP 404如果找不到该名称的图形,或者在图形中找不到此名称的边定义,则返回。
  344. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  345. % code:响应代码。
  346. % errorNum:发生错误的ArangoDB错误号。
  347. % errorMessage:为此错误创建的消息。
  348. delEdgeDef(PoolNameOrSocket, GraphName, EdgeDefName) ->
  349. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", EdgeDefName/binary>>,
  350. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
  351. delEdgeDef(PoolNameOrSocket, GraphName, EdgeDefName, QueryPars) ->
  352. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  353. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", EdgeDefName/binary, QueryBinary/binary>>,
  354. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
  355. % 处理顶点
  356. % 创建一个新顶点
  357. % POST /_api/gharial/{graph}/vertex/{collection}
  358. % 路径参数
  359. % graph(必填):图的名称。
  360. % collection(必填):顶点应插入的顶点集合的名称。
  361. % 查询参数
  362. % waitForSync(可选):定义请求是否应等待直到同步到磁盘。
  363. % returnNew(可选):定义响应是否应包含文档的完整新版本。
  364. % 请求正文(对象)
  365. % 主体必须是要存储的JSON对象。
  366. % 将顶点添加到给定的集合。
  367. % HTTP 201如果可以添加顶点并且waitForSync为true,则返回。
  368. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  369. % vertex:顶点的内部属性。
  370. % new:完整的新编写的顶点文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  371. % HTTP 202如果请求成功,但waitForSync为false,则返回。
  372. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  373. % code:响应代码。
  374. % vertex:存储顶点时生成的内部属性。不包括请求正文中给定的任何属性。
  375. % new:完整的新编写的顶点文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  376. % HTTP 403如果您的用户权限不足,则返回。为了将顶点插入到图中,您至少需要具有以下特权:
  377. % Read Only 访问数据库。
  378. % Write 访问给定的集合。
  379. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  380. % code:响应代码。
  381. % errorNum:发生错误的ArangoDB错误号。
  382. % errorMessage:为此错误创建的消息。
  383. % HTTP 404如果找不到具有该名称的图形,则返回。或者,如果找到了图,但是此集合不是图的一部分。
  384. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  385. % code:响应代码。
  386. % errorNum:发生错误的ArangoDB错误号。
  387. % errorMessage:为此错误创建的消息。
  388. newVertex(PoolNameOrSocket, GraphName, CollName, MapData) ->
  389. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary>>,
  390. BodyStr = jiffy:encode(MapData),
  391. agHttpCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr).
  392. newVertex(PoolNameOrSocket, GraphName, CollName, MapData, QueryPars) ->
  393. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  394. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, QueryBinary/binary>>,
  395. BodyStr = jiffy:encode(MapData),
  396. agHttpCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr).
  397. % 获取现有顶点
  398. % GET /_api/gharial/{graph}/vertex/{collection}/{vertex}
  399. % 路径参数
  400. % graph(必填):图的名称。
  401. % collection(必需):顶点所属的顶点集合的名称。
  402. % vertex(必填):顶点的_key属性。
  403. % 查询参数
  404. % rev(可选):必须包含修订。如果设置了此选项,则仅在具有此修订版本的情况下才返回文档。另请参见if-match标头作为替代方法。
  405. % 标头参数
  406. % if-match(可选):如果给出了“ If-Match”标头,则它必须恰好包含一个Etag。如果文档的版本与给定的Etag相同,则返回文档。否则,返回HTTP 412。或者,您可以在查询参数rev中提供Etag 。
  407. % if-none-match(可选):如果给出了“ If-None-Match”标头,则它必须恰好包含一个Etag。仅当文档的版本与给定的Etag不同时,才返回文档。否则,返回HTTP 304。
  408. % 从给定的集合中获取一个顶点。
  409. % HTTP 200如果可以找到顶点,则返回。
  410. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  411. % code:响应代码。
  412. % vertex:完整的顶点。
  413. % HTTP 304如果给出了if-none-match标头,并且当前存储的顶点仍具有此修订值,则返回。因此,在上一次调用者获取顶点之间没有更新。
  414. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  415. % code:响应代码。
  416. % errorNum:发生错误的ArangoDB错误号。
  417. % errorMessage:为此错误创建的消息。
  418. % HTTP 403如果您的用户权限不足,则返回。为了更新图中的顶点,您至少需要具有以下特权:
  419. % Read Only 访问数据库。
  420. % Read Only 访问给定的集合。
  421. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  422. % code:响应代码。
  423. % errorNum:发生错误的ArangoDB错误号。
  424. % errorMessage:为此错误创建的消息。
  425. % 在以下情况下返回HTTP 404:
  426. % 找不到具有该名称的图。
  427. % 该集合不属于图形。
  428. % 顶点不存在。
  429. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  430. % code:响应代码。
  431. % errorNum:发生错误的ArangoDB错误号。
  432. % errorMessage:为此错误创建的消息。
  433. % HTTP 412如果给出了if-match标头,则返回,但是存储的文档版本不同。
  434. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  435. % code:响应代码。
  436. % errorNum:发生错误的ArangoDB错误号。
  437. % errorMessage:为此错误创建的消息。
  438. getVertex(PoolNameOrSocket, GraphName, CollName, VertexKey) ->
  439. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary>>,
  440. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined).
  441. getVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, QueryPars) ->
  442. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  443. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>,
  444. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined).
  445. getVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, QueryPars, Headers) ->
  446. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  447. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>,
  448. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, Headers, undefined).
  449. % 更新现有顶点
  450. % PATCH /_api/gharial/{graph}/vertex/{collection}/{vertex}
  451. % 路径参数
  452. % graph(必填):图的名称。
  453. % collection(必需):顶点所属的顶点集合的名称。
  454. % vertex(必填):顶点的_key属性。
  455. % 查询参数
  456. % waitForSync(可选):定义请求是否应等待直到同步到磁盘。
  457. % keepNull(可选):定义是否应存储设置为null的值。默认情况下(true),给定的documents(s)属性将设置为null。如果此参数为false,则将属性从文档中删除。
  458. % returnOld(可选):定义是否应在响应对象内返回已删除文档的表示。
  459. % returnNew(可选):定义是否应在响应对象中返回新文档的表示形式。
  460. % 标头参数
  461. % if-match(可选):如果给出了“ If-Match”标头,则它必须恰好包含一个Etag。如果文档的版本与给定的Etag相同,则文档将被更新。否则,返回HTTP 412。或者,您可以在URL的属性rev中提供Etag。
  462. % 请求正文(对象)
  463. % 主体必须包含一个JSON对象,该对象完全包含应被覆盖的属性,所有其他属性保持不变。
  464. % 更新集合中特定顶点的数据。
  465. % HTTP 200如果可以更新顶点且waitForSync为true,则返回。
  466. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  467. % code:响应代码。
  468. % vertex:顶点的内部属性。
  469. % new:完整的新编写的顶点文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  470. % old:完整的覆盖顶点文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  471. % HTTP 202如果请求成功,则返回,并且waitForSync为false。
  472. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  473. % code:响应代码。
  474. % vertex:顶点的内部属性。
  475. % new:完整的新编写的顶点文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  476. % old:完整的覆盖顶点文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  477. % HTTP 403如果您的用户权限不足,则返回。为了更新图中的顶点,您至少需要具有以下特权:
  478. % Read Only 访问数据库。
  479. % Write 访问给定的集合。
  480. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  481. % code:响应代码。
  482. % errorNum:发生错误的ArangoDB错误号。
  483. % errorMessage:为此错误创建的消息。
  484. % 在以下情况下返回HTTP 404:
  485. % 找不到具有该名称的图。
  486. % 该集合不属于图形。
  487. % 要更新的顶点不存在。
  488. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  489. % code:响应代码。
  490. % errorNum:发生错误的ArangoDB错误号。
  491. % errorMessage:为此错误创建的消息。
  492. % HTTP 412如果给出了if-match标头,则返回,但是存储的文档版本不同。
  493. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  494. % code:响应代码。
  495. % errorNum:发生错误的ArangoDB错误号。
  496. % errorMessage:为此错误创建的消息。
  497. updateVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData) ->
  498. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary>>,
  499. BodyStr = jiffy:encode(MapData),
  500. agHttpCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr).
  501. updateVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData, QueryPars) ->
  502. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  503. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>,
  504. BodyStr = jiffy:encode(MapData),
  505. agHttpCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr).
  506. updateVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData, QueryPars, Headers) ->
  507. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  508. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>,
  509. BodyStr = jiffy:encode(MapData),
  510. agHttpCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, Headers, BodyStr).
  511. % 替换现有的顶点
  512. % PUT /_api/gharial/{graph}/vertex/{collection}/{vertex}
  513. % 路径参数
  514. % graph(必填):图的名称。
  515. % collection(必需):顶点所属的顶点集合的名称。
  516. % vertex(必填):顶点的_key属性。
  517. % 查询参数
  518. % waitForSync(可选):定义请求是否应等待直到同步到磁盘。
  519. % keepNull(可选):定义是否应存储设置为null的值。默认情况下,密钥不会从文档中删除。
  520. % returnOld(可选):定义是否应在响应对象内返回已删除文档的表示。
  521. % returnNew(可选):定义是否应在响应对象中返回新文档的表示形式。
  522. % 标头参数
  523. % if-match(可选):如果给出了“ If-Match”标头,则它必须恰好包含一个Etag。如果文档的版本与给定的Etag相同,则文档将被更新。否则,返回HTTP 412。或者,您可以在URL的属性rev中提供Etag。
  524. % 请求正文(对象)
  525. % 主体必须是要存储的JSON对象。
  526. % 替换集合中顶点的数据。
  527. % HTTP 200如果可以替换顶点且waitForSync为true,则返回。
  528. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  529. % code:响应代码。
  530. % vertex:顶点的内部属性。
  531. % new:完整的新编写的顶点文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  532. % old:完整的覆盖顶点文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  533. % HTTP 202如果可以替换顶点且waitForSync为false,则返回。
  534. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  535. % code:响应代码。
  536. % vertex:顶点的内部属性。
  537. % new:完整的新编写的顶点文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  538. % old:完整的覆盖顶点文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  539. % HTTP 403如果您的用户权限不足,则返回。为了替换图中的顶点,您至少需要具有以下特权:
  540. % Read Only 访问数据库。
  541. % Write 访问给定的集合。
  542. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  543. % code:响应代码。
  544. % errorNum:发生错误的ArangoDB错误号。
  545. % errorMessage:为此错误创建的消息。
  546. % 在以下情况下返回HTTP 404:
  547. % 找不到具有该名称的图。
  548. % 该集合不属于图形。
  549. % 要替换的顶点不存在。
  550. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  551. % code:响应代码。
  552. % errorNum:发生错误的ArangoDB错误号。
  553. % errorMessage:为此错误创建的消息。
  554. % HTTP 412如果给出了 if -match标头,则返回,但是存储的文档版本不同。
  555. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  556. % code:响应代码。
  557. % errorNum:发生错误的ArangoDB错误号。
  558. % errorMessage:为此错误创建的消息。
  559. replaceVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData) ->
  560. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary>>,
  561. BodyStr = jiffy:encode(MapData),
  562. agHttpCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr).
  563. replaceVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData, QueryPars) ->
  564. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  565. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>,
  566. BodyStr = jiffy:encode(MapData),
  567. agHttpCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr).
  568. replaceVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, MapData, QueryPars, Headers) ->
  569. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  570. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>,
  571. BodyStr = jiffy:encode(MapData),
  572. agHttpCli:callAgency(PoolNameOrSocket, ?AgPut, Path, Headers, BodyStr).
  573. % 从图中删除顶点
  574. % DELETE /_api/gharial/{graph}/vertex/{collection}/{vertex}
  575. % 路径参数
  576. % graph(必填):图的名称。
  577. % collection(必需):顶点所属的顶点集合的名称。
  578. % vertex(必填):顶点的_key属性。
  579. % 查询参数
  580. % waitForSync(可选):定义请求是否应等待直到同步到磁盘。
  581. % returnOld(可选):定义是否应在响应对象内返回已删除文档的表示。
  582. % 标头参数
  583. % if-match(可选):如果给出了“ If-Match”标头,则它必须恰好包含一个Etag。如果文档的版本与给定的Etag相同,则文档将被更新。否则,返回HTTP 412。或者,您可以在URL的属性rev中提供Etag。
  584. % 从集合中删除一个顶点。
  585. % HTTP 200如果可以删除顶点,则返回。
  586. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  587. % code:响应代码。
  588. % removed:设置为true,如果删除成功。
  589. % old:完整的删除的顶点文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  590. % HTTP 202如果请求成功,但waitForSync为false,则返回。
  591. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  592. % code:响应代码。
  593. % removed:设置为true,如果删除成功。
  594. % old:完整的删除的顶点文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  595. %HTTP 403如果您的用户权限不足,则返回。为了删除图中的顶点,您至少需要具有以下特权:
  596. % Read Only 访问数据库。
  597. % Write 访问给定的集合。
  598. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  599. % code:响应代码。
  600. % errorNum:发生错误的ArangoDB错误号。
  601. % errorMessage:为此错误创建的消息。
  602. % 在以下情况下返回HTTP 404:
  603. % 找不到具有该名称的图。
  604. % 该集合不属于图形。
  605. % 要删除的顶点不存在。
  606. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  607. % code:响应代码。
  608. % errorNum:发生错误的ArangoDB错误号。
  609. % errorMessage:为此错误创建的消息。
  610. % HTTP 412如果给出了if-match标头,则返回,但是存储的文档版本不同。
  611. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  612. % code:响应代码。
  613. % errorNum:发生错误的ArangoDB错误号。
  614. % errorMessage:为此错误创建的消息。
  615. delVertex(PoolNameOrSocket, GraphName, CollName, VertexKey) ->
  616. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary>>,
  617. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
  618. delVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, QueryPars) ->
  619. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  620. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>,
  621. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
  622. delVertex(PoolNameOrSocket, GraphName, CollName, VertexKey, QueryPars, Headers) ->
  623. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  624. Path = <<"/_api/gharial/", GraphName/binary, "/vertex/", CollName/binary, "/", (agMiscUtils:toBinary(VertexKey))/binary, QueryBinary/binary>>,
  625. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, Headers, undefined).
  626. % 处理边缘
  627. % 在现有图形中创建边
  628. % POST /_api/gharial/{graph}/edge/{collection}
  629. % 路径参数
  630. % graph(必填):图的名称。
  631. % collection(必填):边缘所属的边缘集合的名称。
  632. % 查询参数
  633. % waitForSync(可选):定义请求是否应等待直到同步到磁盘。
  634. % returnNew(可选):定义响应是否应包含文档的完整新版本。
  635. % 具有以下属性的JSON对象是必需的:
  636. % _from:此边的源顶点。必须在使用的边定义内有效。
  637. % _to:此边的目标顶点。必须在使用的边定义内有效。
  638. % 在集合中创建新边缘。在主体内,边缘必须包含一个_from和_to值,以引用图中的有效顶点。此外,边缘在所使用的边缘集合的定义中必须有效 。
  639. % HTTP 201如果可以创建边缘并且waitForSync为true,则返回。
  640. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  641. % code:响应代码。
  642. % edge:边缘的内部属性。
  643. % new:完整的新编写的边缘文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  644. % HTTP 202如果请求成功,但waitForSync为false,则返回。
  645. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  646. % code:响应代码。
  647. % edge:边缘的内部属性。
  648. % new:完整的新编写的边缘文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  649. % HTTP 400如果输入文档无效,则返回。例如,这可以是如果_from或_to丢失。
  650. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  651. % code:响应代码。
  652. % errorNum:发生错误的ArangoDB错误号。
  653. % errorMessage:为此错误创建的消息。
  654. % HTTP 403如果您的用户权限不足,则返回。为了将边插入图形中,您至少需要具有以下特权:
  655. % Read Only 访问数据库。
  656. % Write 访问给定的集合。
  657. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  658. % code:响应代码。
  659. % errorNum:发生错误的ArangoDB错误号。
  660. % errorMessage:为此错误创建的消息。
  661. % 在以下任何一种情况下返回的HTTP 404:
  662. % 找不到具有该名称的图形。
  663. % 该边缘集合不是图形的一部分。
  664. % 无论是_from或_to顶点不存在。
  665. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  666. % code:响应代码。
  667. % errorNum:发生错误的ArangoDB错误号。
  668. % errorMessage:为此错误创建的消息。
  669. newEdge(PoolNameOrSocket, GraphName, CollName, MapData) ->
  670. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary>>,
  671. BodyStr = jiffy:encode(MapData),
  672. agHttpCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr).
  673. newEdge(PoolNameOrSocket, GraphName, CollName, MapData, QueryPars) ->
  674. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  675. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, QueryBinary/binary>>,
  676. BodyStr = jiffy:encode(MapData),
  677. agHttpCli:callAgency(PoolNameOrSocket, ?AgPost, Path, [], BodyStr).
  678. % 获得边
  679. % GET /_api/gharial/{graph}/edge/{collection}/{edge}
  680. % 路径参数
  681. % graph(必填):图的名称。
  682. % collection(必填):边缘所属的边缘集合的名称。
  683. % edge(必填):边缘的_key属性。
  684. % 查询参数
  685. % rev(可选):必须包含修订。如果设置了此选项,则仅在具有此修订版本的情况下才返回文档。另请参见if-match标头作为替代方法。
  686. % 标头参数
  687. % if-match(可选):如果给出了“ If-Match”标头,则它必须恰好包含一个Etag。如果文档的版本与给定的Etag相同,则返回文档。否则,返回HTTP 412。或者,您可以在URL的属性rev中提供Etag。
  688. % if-none-match(可选):如果给出了“ If-None-Match”标头,则它必须恰好包含一个Etag。仅当文档的版本与给定的Etag不同时,才返回文档。否则,返回HTTP 304。
  689. % 从给定的集合中获取一条边。
  690. % HTTP 200如果可以找到边缘,则返回。
  691. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  692. % code:响应代码。
  693. % edge:完整的边缘。
  694. % HTTP 304如果给出了if-none-match标头,并且当前存储的边缘仍具有此修订值,则返回。因此,调用者上一次获取边缘之间没有更新。
  695. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  696. % code:响应代码。
  697. % errorNum:发生错误的ArangoDB错误号。
  698. % errorMessage:为此错误创建的消息。
  699. % HTTP 403如果您的用户权限不足,则返回。为了更新图中的顶点,您至少需要具有以下特权:
  700. % Read Only 访问数据库。
  701. % Read Only 访问给定的集合。
  702. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  703. % code:响应代码。
  704. % errorNum:发生错误的ArangoDB错误号。
  705. % errorMessage:为此错误创建的消息。
  706. % 在以下情况下返回HTTP 404:
  707. % 找不到具有该名称的图。
  708. % 该集合不属于图形。
  709. % 边不存在。
  710. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  711. % code:响应代码。
  712. % errorNum:发生错误的ArangoDB错误号。
  713. % errorMessage:为此错误创建的消息。
  714. % HTTP 412如果给出了if-match标头,则返回,但是存储的文档版本不同。
  715. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  716. % code:响应代码。
  717. % errorNum:发生错误的ArangoDB错误号。
  718. % errorMessage:为此错误创建的消息。
  719. getEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey) ->
  720. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary>>,
  721. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined).
  722. getEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, QueryPars) ->
  723. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  724. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>,
  725. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined).
  726. getEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, QueryPars, Headers) ->
  727. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  728. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>,
  729. agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, Headers, undefined).
  730. % 修改现有边
  731. % PATCH /_api/gharial/{graph}/edge/{collection}/{edge}
  732. % 路径参数
  733. % graph(必填):图的名称。
  734. % collection(必填):边缘所属的边缘集合的名称。
  735. % edge(必填):顶点的_key属性。
  736. % 查询参数
  737. % waitForSync(可选):定义请求是否应等待直到同步到磁盘。
  738. % keepNull(可选):定义是否应存储设置为null的值。默认情况下(true),给定的documents(s)属性将设置为null。如果此参数为false,则将从文档中删除该属性。
  739. % returnOld(可选):定义是否应在响应对象内返回已删除文档的表示。
  740. % returnNew(可选):定义是否应在响应对象中返回新文档的表示形式。
  741. % 标头参数
  742. % if-match(可选):如果给出了“ If-Match”标头,则它必须恰好包含一个Etag。如果文档的版本与给定的Etag相同,则文档将被更新。否则,返回HTTP 412。或者,您可以在URL的属性rev中提供Etag。
  743. % 请求正文(对象)
  744. % 主体必须包含一个JSON对象,该对象完全包含应被覆盖的属性,所有其他属性保持不变。
  745. % 更新集合中特定边的数据。
  746. % HTTP 200如果可以更新边缘,并且waitForSync为false,则返回。
  747. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  748. % code:响应代码。
  749. % edge:边缘的内部属性。
  750. % new:完整的新编写的边缘文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  751. % old:完整的覆盖边缘文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  752. % HTTP 202如果请求成功,但waitForSync为false,则返回。
  753. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  754. % code:响应代码。
  755. % edge:边缘的内部属性。
  756. % new:完整的新编写的边缘文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  757. % old:完整的覆盖边缘文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  758. % HTTP 403如果您的用户权限不足,则返回。为了更新图中的边,您至少需要具有以下特权:
  759. % Read Only 访问数据库。
  760. % Write 访问给定的集合。
  761. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  762. % code:响应代码。
  763. % errorNum:发生错误的ArangoDB错误号。
  764. % errorMessage:为此错误创建的消息。
  765. % 在以下情况下返回HTTP 404:
  766. % 找不到具有该名称的图。
  767. % 该集合不属于图形。
  768. % 要更新的边缘不存在。
  769. % 无论是_from或_to顶点不存在(如果更新)。
  770. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  771. % code:响应代码。
  772. % errorNum:发生错误的ArangoDB错误号。
  773. % errorMessage:为此错误创建的消息。
  774. % HTTP 412如果给出了if-match标头,则返回,但是存储的文档版本不同。
  775. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  776. % code:响应代码。
  777. % errorNum:发生错误的ArangoDB错误号。
  778. % errorMessage:为此错误创建的消息。
  779. updateEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData) ->
  780. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary>>,
  781. BodyStr = jiffy:encode(MapData),
  782. agHttpCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr).
  783. updateEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData, QueryPars) ->
  784. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  785. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>,
  786. BodyStr = jiffy:encode(MapData),
  787. agHttpCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, [], BodyStr).
  788. updateEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData, Headers, QueryPars) ->
  789. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  790. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>,
  791. BodyStr = jiffy:encode(MapData),
  792. agHttpCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, Headers, BodyStr).
  793. % 替换现有边的内容
  794. % PUT /_api/gharial/{graph}/edge/{collection}/{edge}
  795. % 路径参数
  796. % graph(必填):图的名称。
  797. % collection(必填):边缘所属的边缘集合的名称。
  798. % edge(必填):顶点的_key属性。
  799. % 查询参数
  800. % waitForSync(可选):定义请求是否应等待直到同步到磁盘。
  801. % keepNull(可选):定义是否应存储设置为null的值。默认情况下,密钥不会从文档中删除。
  802. % returnOld(可选):定义是否应在响应对象内返回已删除文档的表示。
  803. % returnNew(可选):定义是否应在响应对象中返回新文档的表示形式。
  804. % 标头参数
  805. % if-match(可选):如果给出了“ If-Match”标头,则它必须恰好包含一个Etag。如果文档的版本与给定的Etag相同,则文档将被更新。否则,返回HTTP 412。或者,您可以在URL的属性rev中提供Etag。
  806. % 具有以下属性的JSON对象是必需的:
  807. % _from:此边的源顶点。必须在使用的边定义内有效。
  808. % _to:此边的目标顶点。必须在使用的边定义内有效。
  809. % 替换集合中边的数据。
  810. % HTTP 201如果请求成功但waitForSync为true,则返回。
  811. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  812. % code:响应代码。
  813. % edge:边的内部属性
  814. % new:完整的新编写的边缘文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  815. % old:完整的覆盖边缘文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  816. % HTTP 202如果请求成功,但waitForSync为false,则返回。
  817. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  818. % code:响应代码。
  819. % edge:边的内部属性
  820. % new:完整的新编写的边缘文档。包括请求主体中的所有书面属性以及ArangoDB生成的所有内部属性。仅在returnNew为true时存在。
  821. % old:完整的覆盖边缘文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  822. % HTTP 403如果您的用户权限不足,则返回。为了替换图中的边,您至少需要具有以下特权:
  823. % Read Only 访问数据库。
  824. % Write 访问给定的集合。
  825. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  826. % code:响应代码。
  827. % errorNum:发生错误的ArangoDB错误号。
  828. % errorMessage:为此错误创建的消息。
  829. % 在以下情况下返回HTTP 404:
  830. % 找不到具有该名称的图。
  831. % 该集合不属于图形。
  832. % 替换的边不存在。
  833. % 无论是_from或_to顶点不存在。
  834. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  835. % code:响应代码。
  836. % errorNum:发生错误的ArangoDB错误号。
  837. % errorMessage:为此错误创建的消息。
  838. % HTTP 412如果给出了if-match标头,则返回,但是存储的文档版本不同。
  839. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  840. % code:响应代码。
  841. % errorNum:发生错误的ArangoDB错误号。
  842. % errorMessage:为此错误创建的消息。
  843. replaceEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData) ->
  844. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary>>,
  845. BodyStr = jiffy:encode(MapData),
  846. agHttpCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr).
  847. replaceEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData, QueryPars) ->
  848. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  849. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>,
  850. BodyStr = jiffy:encode(MapData),
  851. agHttpCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], BodyStr).
  852. replaceEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, MapData, QueryPars, Headers) ->
  853. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  854. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>,
  855. BodyStr = jiffy:encode(MapData),
  856. agHttpCli:callAgency(PoolNameOrSocket, ?AgPut, Path, Headers, BodyStr).
  857. % 从图形中删除边
  858. % DELETE /_api/gharial/{graph}/edge/{collection}/{edge}
  859. % 路径参数
  860. % graph(必填):图的名称。
  861. % collection(必填):边缘所属的边缘集合的名称。
  862. % edge(必填):边缘的_key属性。
  863. % 查询参数
  864. % waitForSync(可选):定义请求是否应等待直到同步到磁盘。
  865. % returnOld(可选):定义是否应在响应对象内返回已删除文档的表示。
  866. % 标头参数
  867. % if-match(可选):如果给出了“ If-Match”标头,则它必须恰好包含一个Etag。如果文档的版本与给定的Etag相同,则文档将被更新。否则,返回HTTP 412。或者,您可以在URL的属性rev中提供Etag。
  868. % 从集合中删除边缘。
  869. % HTTP 200如果可以删除边缘,则返回。
  870. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  871. % code:响应代码。
  872. % removed:设置为true,如果删除成功。
  873. % old:完整的已删除边缘文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  874. % HTTP 202如果请求成功,但waitForSync为false,则返回。
  875. % error:如果有错误,则标记(true),否则(false)。这个回应是错误的。
  876. % code:响应代码。
  877. % removed:设置为true,如果删除成功。
  878. % old:完整的已删除边缘文档。包括此操作之前存储的所有属性。仅在returnOld为true时存在。
  879. % HTTP 403如果您的用户权限不足,则返回。为了删除图中的顶点,您至少需要具有以下特权:
  880. % Read Only 访问数据库。
  881. % Write 访问给定的集合。
  882. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  883. % code:响应代码。
  884. % errorNum:发生错误的ArangoDB错误号。
  885. % errorMessage:为此错误创建的消息。
  886. % 在以下情况下返回HTTP 404:
  887. % 找不到具有该名称的图。
  888. % 该集合不属于图形。
  889. % 要删除的边缘不存在。
  890. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  891. % code:响应代码。
  892. % errorNum:发生错误的ArangoDB错误号。
  893. % errorMessage:为此错误创建的消息。
  894. % HTTP 412如果给出了if-match标头,则返回,但是存储的文档版本不同。
  895. % error:如果有错误,则标记(true),否则(false)。这个回应是真的。
  896. % code:响应代码。
  897. % errorNum:发生错误的ArangoDB错误号。
  898. % errorMessage:为此错误创建的消息。
  899. delEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey) ->
  900. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary>>,
  901. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
  902. delEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, QueryPars) ->
  903. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  904. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>,
  905. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
  906. delEdge(PoolNameOrSocket, GraphName, CollName, EdgeKey, Headers, QueryPars) ->
  907. QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
  908. Path = <<"/_api/gharial/", GraphName/binary, "/edge/", CollName/binary, "/", (agMiscUtils:toBinary(EdgeKey))/binary, QueryBinary/binary>>,
  909. agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, Headers, undefined).