Difference between revisions of "UBIK Web Service"
(→HTTP (REST)) |
|||
| Line 139: | Line 139: | ||
The <code>__type</code> property allows the JSON deserializer to find the correct class. [[https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/stand-alone-json-serialization?redirectedfrom=MSDN#polymorphism-1| Microsoft Documentation]]. | The <code>__type</code> property allows the JSON deserializer to find the correct class. [[https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/stand-alone-json-serialization?redirectedfrom=MSDN#polymorphism-1| Microsoft Documentation]]. | ||
| − | + | ||
==== SOAP ==== | ==== SOAP ==== | ||
| Line 164: | Line 164: | ||
Make sure to replace the application, context and authtoken accordingly! | Make sure to replace the application, context and authtoken accordingly! | ||
| − | + | ||
==== C# ==== | ==== C# ==== | ||
| Line 190: | Line 190: | ||
</source> | </source> | ||
| − | + | ||
=== Downloading Infrastructure Objects === | === Downloading Infrastructure Objects === | ||
| Line 212: | Line 212: | ||
Make sure to replace the <code><tags></code> accordingly! | Make sure to replace the <code><tags></code> accordingly! | ||
| − | + | ||
==== SOAP ==== | ==== SOAP ==== | ||
| Line 260: | Line 260: | ||
</source> | </source> | ||
| − | + | ||
=== Downloading branch === | === Downloading branch === | ||
| Line 308: | Line 308: | ||
Make sure to replace the application, context and authtoken accordingly! | Make sure to replace the application, context and authtoken accordingly! | ||
| − | + | ||
==== C# ==== | ==== C# ==== | ||
| Line 334: | Line 334: | ||
</source> | </source> | ||
| − | + | ||
= Download a Document = | = Download a Document = | ||
| Line 607: | Line 607: | ||
The <code>__type</code> property allows the JSON deserializer to find the correct class. [[https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/stand-alone-json-serialization?redirectedfrom=MSDN#polymorphism-1| Microsoft Documentation]]. | The <code>__type</code> property allows the JSON deserializer to find the correct class. [[https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/stand-alone-json-serialization?redirectedfrom=MSDN#polymorphism-1| Microsoft Documentation]]. | ||
| − | + | ||
=== Code Example (C#) === | === Code Example (C#) === | ||
| Line 652: | Line 652: | ||
</source> | </source> | ||
| − | + | ||
= Upload Document = | = Upload Document = | ||
| Line 731: | Line 731: | ||
</source> | </source> | ||
| + | |||
| + | = Exclusive Access = | ||
| + | == CheckOut == | ||
| + | Tries to get exclusive access to all provided contents. | ||
| + | |||
| + | <source lang="csharp"> | ||
| + | [OperationContract] | ||
| + | [WebInvoke(UriTemplate = "CheckOut/{appName}/{contextName}/{authentication}/{version}", Method = "POST", | ||
| + | RequestFormat = WebMessageFormat.Json, | ||
| + | BodyStyle = WebMessageBodyStyle.Bare, | ||
| + | ResponseFormat = WebMessageFormat.Json)] | ||
| + | BCDataShipments CheckOut( | ||
| + | string appName, | ||
| + | string contextName, | ||
| + | string authentication, | ||
| + | UbikContent[] contents, | ||
| + | string version); | ||
| + | </source> | ||
| + | |||
| + | |||
| + | === List of Parameters === | ||
| + | {| class="wikitable" | width = "50%" | ||
| + | |- | ||
| + | ! Name!! Type !! Description | ||
| + | |- | ||
| + | | appName|| String || Name of the Application | ||
| + | |- | ||
| + | | contextName|| String || Name of the Context | ||
| + | |- | ||
| + | | authentication|| String || Valid auth token | ||
| + | |- | ||
| + | | contents|| UbikContent[] || Content objects to be checked out | ||
| + | |- | ||
| + | | version|| String || Indicator of the expected data format version | ||
| + | |- | ||
| + | |} | ||
| + | |||
| + | |||
| + | === Code Example (C#) === | ||
| + | <source lang="csharp"> | ||
| + | string appName = "APP_TEST"; | ||
| + | string contextName = "CTX_TEST"; | ||
| + | string authToken = FetchValidAuthToken(); | ||
| + | string version = "362"; | ||
| + | |||
| + | UbikContent updateContent = new UbikContent() | ||
| + | { | ||
| + | // reference to the MetaDefinition | ||
| + | MetaClassID = new Guid("6b4bd904-8504-4e05-93dd-ae120d15a5be"), | ||
| + | // object => we must use the UID of an existing content object | ||
| + | UID = new Guid("6b4bd904-8504-4e05-93dd-ae120d15a5be") | ||
| + | }; | ||
| + | |||
| + | UBIKContentClient target = new UBIKContentClient(WEBSERVER_NAME); | ||
| + | |||
| + | BCDataShipments result = target.CheckOut( | ||
| + | appName, | ||
| + | contextName, | ||
| + | authToken, | ||
| + | new UbikContent[] { updateContent }, | ||
| + | version); | ||
| + | </source> | ||
| + | |||
| + | == Release == | ||
| + | Tries to release the exclusive access to all provided contents. | ||
| + | |||
| + | <source lang="csharp"> | ||
| + | [OperationContract] | ||
| + | [WebInvoke(UriTemplate = "Release/{appName}/{contextName}/{authentication}/{version}", Method = "POST", | ||
| + | RequestFormat = WebMessageFormat.Json, | ||
| + | BodyStyle = WebMessageBodyStyle.Bare, | ||
| + | ResponseFormat = WebMessageFormat.Json)] | ||
| + | BCDataShipments Release( | ||
| + | string appName, | ||
| + | string contextName, | ||
| + | string authentication, | ||
| + | UbikContent[] contents, | ||
| + | string version); | ||
| + | </source> | ||
| + | |||
| + | |||
| + | === List of Parameters === | ||
| + | {| class="wikitable" | width = "50%" | ||
| + | |- | ||
| + | ! Name!! Type !! Description | ||
| + | |- | ||
| + | | appName|| String || Name of the Application | ||
| + | |- | ||
| + | | contextName|| String || Name of the Context | ||
| + | |- | ||
| + | | authentication|| String || Valid auth token | ||
| + | |- | ||
| + | | contents|| UbikContent[] || Content objects to be checked out | ||
| + | |- | ||
| + | | version|| String || Indicator of the expected data format version | ||
| + | |- | ||
| + | |} | ||
| + | |||
| + | |||
| + | === Code Example (C#) === | ||
| + | <source lang="csharp"> | ||
| + | string appName = "APP_TEST"; | ||
| + | string contextName = "CTX_TEST"; | ||
| + | string authToken = FetchValidAuthToken(); | ||
| + | string version = "362"; | ||
| + | |||
| + | UbikContent updateContent = new UbikContent() | ||
| + | { | ||
| + | // reference to the MetaDefinition | ||
| + | MetaClassID = new Guid("6b4bd904-8504-4e05-93dd-ae120d15a5be"), | ||
| + | // object => we must use the UID of an existing content object | ||
| + | UID = new Guid("6b4bd904-8504-4e05-93dd-ae120d15a5be") | ||
| + | }; | ||
| + | |||
| + | UBIKContentClient target = new UBIKContentClient(WEBSERVER_NAME); | ||
| + | |||
| + | BCDataShipments result = target.Release( | ||
| + | appName, | ||
| + | contextName, | ||
| + | authToken, | ||
| + | new UbikContent[] { updateContent }, | ||
| + | version); | ||
| + | </source> | ||
<headertabs /> | <headertabs /> | ||
[[Category:Server|Web Service]] | [[Category:Server|Web Service]] | ||
Revision as of 16:28, 4 April 2022
The following section describes the most important UBIK Webservice Methods used for
- Fetching information about the Datamodell (Fetch MetaDefinitions)
- Downloading Content objects (Download Content)
- Downloading Content File Documents (Download Document)
- Creating a single Content object (Create Content)
- Updating Content objects (Update Contents)
- Uploading a file Document (Upload Document )
