使用 heracles.ts 提取 hydra:class 的属性或 hydra:collection 的成员
Extracting properties of a hydra:class or members of a hydra:collection with heracles.ts
我正在寻找有关使用来自自定义 Hydra endpoint requested with the reference client in TypeScript, Heracles.ts.
响应的 hydra:class
和 hydra:collection/hydra:member
对象属性的指导
例如,考虑来自我的服务器的以下 JSON-LD 响应:
{
"context": {...},
"member": [
{
"@id": "example:2bfd5353-6842-48f7-9f8c-111474f57dfb",
"@type": "schema:person",
"label": "Person 1"
},
{
"@id": "example:108d8384-a55a-4b21-8511-654fb3830d5f",
"@type": "schema:person",
"label": "Person 2"
},
],
}
我可以得到这个响应并使用以下代码循环它:
const data = await Client.getResource(
"http://example.com/api/persons"
);
for (const person of data.members) {
const iri = person.iri;
const label = person.label; // How can I do this?
}
我不知道如何从响应中提取 iri
和 type
之外的属性。 Hydra 存储库中的文档和用例仅讨论诸如 对 对象(例如在 Use Case Draft 4 中)做某事之类的事情,而没有说明如何做。我也无法在回购中的测试和其他源代码中找到具体示例。
非常感谢任何帮助。
最好的,
丹尼尔
我在 Heracles GitHub 存储库上问过同样的问题,得到 answer 除了 Hydra 元数据之外的内容访问器需要手动实现,类似于:
const data = await Client.getResource(
"http://localhost:4000/persons"
);
const graph = await jsonld.expand(await data.json());
for (const person of data.members) {
const personResource = graph["@graph"].find(_ => _["@id"] === person.iri);
const label = personResource["http://some.uri/vocab#label][0]["@value"];
}
来源:GitHub
上的 alien-mcl
我正在寻找有关使用来自自定义 Hydra endpoint requested with the reference client in TypeScript, Heracles.ts.
响应的hydra:class
和 hydra:collection/hydra:member
对象属性的指导
例如,考虑来自我的服务器的以下 JSON-LD 响应:
{
"context": {...},
"member": [
{
"@id": "example:2bfd5353-6842-48f7-9f8c-111474f57dfb",
"@type": "schema:person",
"label": "Person 1"
},
{
"@id": "example:108d8384-a55a-4b21-8511-654fb3830d5f",
"@type": "schema:person",
"label": "Person 2"
},
],
}
我可以得到这个响应并使用以下代码循环它:
const data = await Client.getResource(
"http://example.com/api/persons"
);
for (const person of data.members) {
const iri = person.iri;
const label = person.label; // How can I do this?
}
我不知道如何从响应中提取 iri
和 type
之外的属性。 Hydra 存储库中的文档和用例仅讨论诸如 对 对象(例如在 Use Case Draft 4 中)做某事之类的事情,而没有说明如何做。我也无法在回购中的测试和其他源代码中找到具体示例。
非常感谢任何帮助。
最好的, 丹尼尔
我在 Heracles GitHub 存储库上问过同样的问题,得到 answer 除了 Hydra 元数据之外的内容访问器需要手动实现,类似于:
const data = await Client.getResource(
"http://localhost:4000/persons"
);
const graph = await jsonld.expand(await data.json());
for (const person of data.members) {
const personResource = graph["@graph"].find(_ => _["@id"] === person.iri);
const label = personResource["http://some.uri/vocab#label][0]["@value"];
}
来源:GitHub
上的 alien-mcl