Beispiel Katalogstruktur
- Hardware
- Festplatten
- SSD
- Zubehör
- Arbeitsspeicher
- Zubehör
Folgende Id wurden den Katalogen in unserem System vergeben:
Name | Id |
---|
Hardware | 1 |
Festplatten | 2 |
Arbeitsspeicher | 3 |
Zubehör | 4 |
SSD | 5 |
Ein sogenannter Root Katalog wird durch das Property IsRootLevel definiert.
Wird das Property IsRootLevel mit true übergeben, so ist es dieser Katalog für uns ein Root Katalog und wird als Katalog in der obersten Ebene angezeigt.
Ein Root Katalog kann aber gleichzeitig auch ein Unterkatalog eines anderen Root bzw. Unterkatalogs sein.
In dem Beispiel der Katalogstruktur ist Zubehör ein Root Katalog und gleichzeit ein Unterkatalog und besitzt im Fremdsystem die gleiche Id.
Im unterem Beispiel werdem die Kataloge Hardware und Zubehör als Root Katalog definiert.
Request Methode
POST http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs
Request HTTP-Header
Content-Type: application/atom+xml
SubscriptionToken: g93af799-6ae8-e111-8406-0050568261dc
Cookie: .ASPXAUTH=0186587E1743637D35632A7EDAF4F07EA67C6E4577770C3778FD9C17904A9D85B01369A8198B23A9AF530DBE93A68687C219BE1876B16B 0DAEBBD2C3318CA6C99D9C53E5B9FE17B7CF9661C5CDDDB97B90D5D3AF550100227EC8D6E6858FAE986AF2302C337B8DFEC6099898C19AA335A81317AB2B382DE72586AA9DF830C715332215AEBFD5E2FBA45F2BB5A7CA9793; path=/; HttpOnly
Request Body
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<entry xml:base="http://sandboxapi.via.de/publicapi/v1/api.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<content type="application/xml">
<m:properties>
<d:ForeignId>1</d:ForeignId>
<d:Name>Hardware</d:Name>
<d:IsRootLevel>true</d:IsRootLevel>
</m:properties>
</content>
</entry>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xml:base="http://sandboxapi.via.de/PublicApi/v1/Api.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<id>http://sandboxapi.via.de/PublicApi/v1/Api.svc/Catalogs(1L)</id>
<title type="text"></title>
<updated>2012-10-10T12:48:38Z</updated>
<author>
<name />
</author>
<link rel="edit" title="Catalog" href="Catalogs(1L)" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Products" type="application/atom+xml;type=feed" title="Products" href="Catalogs(1L)/Products" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ChildCatalogs" type="application/atom+xml;type=feed" title="ChildCatalogs" href="Catalogs(1L)/ChildCatalogs" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ParentCatalogs" type="application/atom+xml;type=feed" title="ParentCatalogs" href="Catalogs(1L)/ParentCatalogs" />
<category term="Via.BlackBox.Entities.Api.Catalog" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Int64">1</d:Id>
<d:ForeignId>1</d:ForeignId>
<d:Name>Hardware</d:Name>
<d:IsRootLevel m:type="Edm.Boolean">true</d:IsRootLevel>
</m:properties>
</content>
</entry>
Request Body
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<entry xml:base="http://sandboxapi.via.de/publicapi/v1/api.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<content type="application/xml">
<m:properties>
<d:ForeignId>4</d:ForeignId>
<d:Title>Zubehör</d:Name>
<d:IsRootLevel>true</d:IsRootLevel>
</m:properties>
</content>
</entry>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xml:base="http://sandboxapi.via.de/PublicApi/v1/Api.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<id>http://sandboxapi.via.de/PublicApi/v1/Api.svc/Catalogs(4L)</id>
<title type="text"></title>
<updated>2012-10-10T12:48:38Z</updated>
<author>
<name />
</author>
<link rel="edit" title="Catalog" href="Catalogs(4L)" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Products" type="application/atom+xml;type=feed" title="Products" href="Catalogs(4L)/Products" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ChildCatalogs" type="application/atom+xml;type=feed" title="ChildCatalogs" href="Catalogs(4L)/ChildCatalogs" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ParentCatalogs" type="application/atom+xml;type=feed" title="ParentCatalogs" href="Catalogs(4L)/ParentCatalogs" />
<category term="Via.BlackBox.Entities.Api.Catalog" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Int64">4</d:Id>
<d:ForeignId>4</d:ForeignId>
<d:Name>Zubehör</d:Name>
<d:IsRootLevel m:type="Edm.Boolean">true</d:IsRootLevel>
</m:properties>
</content>
</entry>
Request HTTP-Header
Content-Type: application/json
Accept: application/json
SubscriptionToken: g93af799-6ae8-e111-8406-0050568261dc
Cookie: .ASPXAUTH=0186587E1743637D35632A7EDAF4F07EA67C6E4577770C3778FD9C17904A9D85B01369A8198B23A9AF530DBE93A68687C219BE1876B16B 0DAEBBD2C3318CA6C99D9C53E5B9FE17B7CF9661C5CDDDB97B90D5D3AF550100227EC8D6E6858FAE986AF2302C337B8DFEC6099898C19AA335A81317AB2B382DE72586AA9DF830C715332215AEBFD5E2FBA45F2BB5A7CA9793; path=/; HttpOnly
Request Body
{
"ForeignId" : "1",
"Name" : "Hardware",
"IsRootLevel" : "true"
}
Response Body
{
"d" : {
"__metadata" : {
"uri" : "http://sandboxapi.via.de/PublicApi/v1/Api.svc/Catalogs(1L)",
"type" : "Via.BlackBox.Entities.Api.Catalog"
},
"Id" : "1",
"ForeignId" : "1",
"Name" : "Hardware",
"IsRootLevel" : true,
"Products" : {
"__deferred" : {
"uri" : "http://sandboxapi.via.de/PublicApi/v1/Api.svc/Catalogs(1L)/Products"
}
},
"ChildCatalogs" : {
"__deferred" : {
"uri" : "http://sandboxapi.via.de/PublicApi/v1/Api.svc/Catalogs(1L)/ChildCatalogs"
}
},
"ParentCatalogs" : {
"__deferred" : {
"uri" : "http://sandboxapi.via.de/PublicApi/v1/Api.svc/Catalogs(1L)/ParentCatalogs"
}
}
}
}
Request Body
{
"ForeignId" : "4",
"Name" : "Zubehör",
"IsRootLevel" : "true"
}
Response Body
{
"d" : {
"__metadata" : {
"uri" : "http://sandboxapi.via.de/PublicApi/v1/Api.svc/Catalogs(4L)",
"type" : "Via.BlackBox.Entities.Api.Catalog"
},
"Id" : "4",
"ForeignId" : "4",
"Name" : "Zubehör",
"IsRootLevel" : true,
"Products" : {
"__deferred" : {
"uri" : "http://sandboxapi.via.de/PublicApi/v1/Api.svc/Catalogs(4L)/Products"
}
},
"ChildCatalogs" : {
"__deferred" : {
"uri" : "http://sandboxapi.via.de/PublicApi/v1/Api.svc/Catalogs(4L)/ChildCatalogs"
}
},
"ParentCatalogs" : {
"__deferred" : {
"uri" : "http://sandboxapi.via.de/PublicApi/v1/Api.svc/Catalogs(4L)/ParentCatalogs"
}
}
}
}
Response HTTP-Header
Status Code: 201 Created
Cache-Control: no-cache
Content-Length: 2154
Content-Type: application/atom+xml;charset=utf-8
DataServiceVersion: 1.0;
...
Das Zuordnen eines Unterkataloges zu einem Oberkatalog erfolgt über den OData Operator $links.
Mit diesem Operator können sogenannte Links angelegt und gelöscht werden.
Im unterem Beispiel werdem dem Katalog Hardware die Kataloge Festplatten und Arbeitsspeicher zugewiesen.
Request Methode
POST http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(1L)/$links/ChildCatalogs
Request HTTP-Header
Content-Type: application/atom+xml
SubscriptionToken: g93af799-6ae8-e111-8406-0050568261dc
Cookie: .ASPXAUTH=0186587E1743637D35632A7EDAF4F07EA67C6E4577770C3778FD9C17904A9D85B01369A8198B23A9AF530DBE93A68687C219BE1876B16B 0DAEBBD2C3318CA6C99D9C53E5B9FE17B7CF9661C5CDDDB97B90D5D3AF550100227EC8D6E6858FAE986AF2302C337B8DFEC6099898C19AA335A81317AB2B382DE72586AA9DF830C715332215AEBFD5E2FBA45F2BB5A7CA9793; path=/; HttpOnly
Request Body
Für den Katalog Festplatten mit der Id 2
<uri xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">
http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(2L)
</uri>
Für den Katalog Arbeitsspeicher mit der Id 3
<uri xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">
http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(3L)
</uri>
Im unterem Beispiel werdem dem Katalog Festplatten mit der Id 2 die Kataloge SSD mit der Id 5 und Zubehör mit der Id 4 zugewiesen.
Request Methode
POST http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(2L)/$links/ChildCatalogs
Request HTTP-Header
Content-Type: application/atom+xml
SubscriptionToken: g93af799-6ae8-e111-8406-0050568261dc
Cookie: .ASPXAUTH=0186587E1743637D35632A7EDAF4F07EA67C6E4577770C3778FD9C17904A9D85B01369A8198B23A9AF530DBE93A68687C219BE1876B16B 0DAEBBD2C3318CA6C99D9C53E5B9FE17B7CF9661C5CDDDB97B90D5D3AF550100227EC8D6E6858FAE986AF2302C337B8DFEC6099898C19AA335A81317AB2B382DE72586AA9DF830C715332215AEBFD5E2FBA45F2BB5A7CA9793; path=/; HttpOnly
Request Body
Für den Katalog Zubehör mit der Id 4
<uri xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">
http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(4L)
</uri>
Für den Katalog SSD mit der Id 5
<uri xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">
http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(5L)
</uri>
Request HTTP-Header
Content-Type: application/json
Accept: application/json
SubscriptionToken: g93af799-6ae8-e111-8406-0050568261dc
Cookie: .ASPXAUTH=0186587E1743637D35632A7EDAF4F07EA67C6E4577770C3778FD9C17904A9D85B01369A8198B23A9AF530DBE93A68687C219BE1876B16B 0DAEBBD2C3318CA6C99D9C53E5B9FE17B7CF9661C5CDDDB97B90D5D3AF550100227EC8D6E6858FAE986AF2302C337B8DFEC6099898C19AA335A81317AB2B382DE72586AA9DF830C715332215AEBFD5E2FBA45F2BB5A7CA9793; path=/; HttpOnly
Request Body
Für den Katalog Festplatten mit der Id 2
{
"uri" : "http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(2L)"
}
Für den Katalog Arbeitsspeicher mit der Id 3
{
"uri" : "http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(3L)"
}
Im unterem Beispiel werdem dem Katalog Festplatten mit der Id 2 die Kataloge SSD mit der Id 5 und Zubehör mit der Id 4 zugewiesen.
Request Methode
POST http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(2L)/$links/ChildCatalogs
Request HTTP-Header
Content-Type: application/json
Accept: application/json
SubscriptionToken: g93af799-6ae8-e111-8406-0050568261dc
Cookie: .ASPXAUTH=0186587E1743637D35632A7EDAF4F07EA67C6E4577770C3778FD9C17904A9D85B01369A8198B23A9AF530DBE93A68687C219BE1876B16B 0DAEBBD2C3318CA6C99D9C53E5B9FE17B7CF9661C5CDDDB97B90D5D3AF550100227EC8D6E6858FAE986AF2302C337B8DFEC6099898C19AA335A81317AB2B382DE72586AA9DF830C715332215AEBFD5E2FBA45F2BB5A7CA9793; path=/; HttpOnly
Request Body
Für den Katalog Zubehör mit der Id 4
{
"uri" : "http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(4L)"
}
Für den Katalog SSD mit der Id 5
{
"uri" : "http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(5L)"
}
Response HTTP-Header
Status Code: 204 No Content
Cache-Control: no-cache
DataServiceVersion: 1.0;
...
Das Zuordnen eines Produktes zu einem Katalog erfolgt über den OData Operator $links.
Mit diesem Operator können sogenannte Links angelegt und gelöscht werden.
Im unteren Beispiel wird dem Katalog mit der Id 1 ein Produkt mit der Id 1 zugewiesen.
Request Methode
POST http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(1L)/$links/Products
Request HTTP-Header
Content-Type: application/atom+xml
SubscriptionToken: g93af799-6ae8-e111-8406-0050568261dc
Cookie: .ASPXAUTH=0186587E1743637D35632A7EDAF4F07EA67C6E4577770C3778FD9C17904A9D85B01369A8198B23A9AF530DBE93A68687C219BE1876B16B 0DAEBBD2C3318CA6C99D9C53E5B9FE17B7CF9661C5CDDDB97B90D5D3AF550100227EC8D6E6858FAE986AF2302C337B8DFEC6099898C19AA335A81317AB2B382DE72586AA9DF830C715332215AEBFD5E2FBA45F2BB5A7CA9793; path=/; HttpOnly
Request Body
<uri xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">
http://sandboxapi.via.de/publicapi/v1/api.svc/Products(1L)
</uri>
Request HTTP-Header
Content-Type: application/json
Accept: application/json
SubscriptionToken: g93af799-6ae8-e111-8406-0050568261dc
Cookie: .ASPXAUTH=0186587E1743637D35632A7EDAF4F07EA67C6E4577770C3778FD9C17904A9D85B01369A8198B23A9AF530DBE93A68687C219BE1876B16B 0DAEBBD2C3318CA6C99D9C53E5B9FE17B7CF9661C5CDDDB97B90D5D3AF550100227EC8D6E6858FAE986AF2302C337B8DFEC6099898C19AA335A81317AB2B382DE72586AA9DF830C715332215AEBFD5E2FBA45F2BB5A7CA9793; path=/; HttpOnly
Request Body
{
"uri" : "http://sandboxapi.via.de/publicapi/v1/api.svc/Products(1L)"
}
Response HTTP-Header
Status Code: 204 No Content
Cache-Control: no-cache
DataServiceVersion: 1.0;
...
Im unteren Beispiel das Produkt mit der Id 1 aus dem Katalog mit der Id 1 entfernt.
Request Methode
DELETE http://sandboxapi.via.de/publicapi/v1/api.svc/Catalogs(1L)/$links/Products(1L)
Request HTTP-Header
SubscriptionToken: g93af799-6ae8-e111-8406-0050568261dc
Cookie: .ASPXAUTH=0186587E1743637D35632A7EDAF4F07EA67C6E4577770C3778FD9C17904A9D85B01369A8198B23A9AF530DBE93A68687C219BE1876B16B 0DAEBBD2C3318CA6C99D9C53E5B9FE17B7CF9661C5CDDDB97B90D5D3AF550100227EC8D6E6858FAE986AF2302C337B8DFEC6099898C19AA335A81317AB2B382DE72586AA9DF830C715332215AEBFD5E2FBA45F2BB5A7CA9793; path=/; HttpOnly
Response HTTP-Header
Status Code: 204 No Content
Cache-Control: no-cache
DataServiceVersion: 1.0;
...