Я пытаюсь сделать запрос к серверу TinkerPop (расположенному внутри контейнера докера) через клиентскую библиотеку CosmosDB , которая используется под капотом Gremlin.Net. Так что мне удалось подключить его и вставить данные, вот перехваченный запрос WebSocket:
!application/vnd.gremlin-v1.0+json{
"requestId": "b64bd2eb-46c3-4095-9eef-768bca2a14ed",
"op": "eval",
"processor": "",
"args": {
"gremlin": "g.addV(\"User\").property(\"UserId\",2).property(\"CustomerId\",1)"
}
}
Ответ:
{
"requestId": "b64bd2eb-46c3-4095-9eef-768bca2a14ed",
"status": {
"message": "",
"code": 200,
"attributes": {
"host": "/172.19.0.1:38848"
}
},
"result": {
"data": [
{
"id": 0,
"label": "User",
"type": "vertex",
"properties": {}
}
],
"meta": {}
}
}
Проблема в том, что я вижу эти свойства, когда я подключен черезконсоль gremlin
gremlin> g.V().hasLabel("User").has("CustomerId",1).has("UserId",2).limit(1).valueMap()
==>{UserId=[2], CustomerId=[1]}
Кроме того, я могу запросить сервер TinkerPop с Gremlin.Net:
!application/vnd.gremlin-v1.0+json{
"requestId": "de35909f-4bc1-4aae-aa5f-28361b3c0933",
"op": "eval",
"processor": "",
"args": {
"gremlin": "g.V().hasLabel(\"User\").has(\"CustomerId\",1).has(\"UserId\",2).limit(1)"
}
}
Но он возвращает полезную нагрузку с нулевым идентификатором и без каких-либо свойств. включено:
{
"requestId": "de35909f-4bc1-4aae-aa5f-28361b3c0933",
"status": {
"message": "",
"code": 200,
"attributes": {
"host": "/172.19.0.1:38858"
}
},
"result": {
"data": [
{
"id": 0,
"label": "User",
"type": "vertex",
"properties": {}
}
],
"meta": {}
}
}
Попытка поменять местами GraphSON v1, v2, v3 без удачи. Документация говорит, что сериализаторы сценариев должны включать все свойства. Должен ли я как-то настроить конфиг, чтобы это работало и возвращало свойства?