为什么我对REST Graph的REST调用时间太长(2-4s)?

时间:2016-02-04 15:09:07

标签: ibm-cloud graph-databases ibm-graph

当我对IBM Graph实例进行任何调用时,它需要几秒钟才能完成。

curl "$apiURL/vertices" \
-u "$username:$password"
-X POST \
-H 'Content-Type: application/json' \
-d '{ "Name": "Million Dollar Baby",
      "Type": "Movie" }'

知道为什么会发生这种情况以及是否有其他选择?

1 个答案:

答案 0 :(得分:6)

发生这种情况的原因是因为您在休息时使用了基本身份验证。每次拨打电话时,基本身份验证都需要更长的时间来验证您的凭据。基本身份验证适用于原型设计或快速尝试。 Session authentication是用于生产代码的推荐方法。以下是它的工作原理:

首先,您需要使用_session端点

获取会话令牌
#API URL that's returned as part of your credentials 
#without the /g a
curl  -u  username:password  -X GET "<API URL>/_session"

响应看起来应该是这样的

{"gds-token":"MzgyZGZmNzEtZTE3MS00ODZlLWIzYzUtN2M2OWI3YTgyYjYxOjE0NTQ1OTc5NTg1NTg6QUp6UmEwTkVJN3I3cFE1Sy9uMHp5ZEZjbmx5YnE5VTJWTjZpM0pnS0ZXVT0="}

现在您可以将此gds-token传递给后续的API调用,如下例所示

curl -H 'Authorization: gds-token MzgyZGZmNzEtZTE3MS00ODZlLWIzYzUtN2M2OWI3YTgyYjYxOjE0NTQ1OTc5NTg1NTg6QUp6UmEwTkVJN3I3cFE1Sy9uMHp5ZEZjbmx5YnE5VTJWTjZpM0pnS0ZXVT0= Content-Type: application/json' -d '{"Name": "Million Dollar Baby","Type": "Movie" }' -X POST "<API URL>/g/vertices"