WebAPI Server

Navigation:  L'interfaccia utente > Control Panel > Publishing >

WebAPI Server

Previous pageReturn to chapter overviewNext page

Il Protocollo Open Data (in inglese: Open Data Protocol) o OData è un protocollo aperto che permette la creazione e il consumo di API RESTful interoperabili e interrogabili in maniera semplice e standard.

 

Microsoft creò gli OData nel 2007. Le versioni 1.0, 2.0 e 3.0 sono state rilasciate sotto la licenza Microsoft Open Specification Promise. La versione 4.0 fu standardizzata presso l'OASIS nel marzo 2014. Nell'aprile 2015 OASIS propone gli Odata versione 4 e il formato OData JSON versione 4 all'ISO/IEC JTC 1 per un'approvazione come standard internazionale.

 

Il servizio Windows Web Api è un componente opzionale di IrionEDM che consente di esporre contenuti fruibili attraverso il protocollo OData.

Il WebAPI Server è il server su cui il servizio è installato ed abilitato.

 

Gli output restituiti dal servizio, a fronte di una richiesta via web, sono file JSON oppure XML.

 

Il servizio associato al WebAPI Server può essere lanciato mediante l'eseguibile

 IrionDQ.WebApiServer.exe 

che si trova nella directory di installazione di IrionEDM.

 

info

Al fine di incrementare le performance del WebAPI Server, l'architettura applicativa può prevedere l'installazione in parallelo su più macchine.

 

Se il WebAPI Server è stato configurato dall'Administrator in fase di installazione oppure attraverso i cmdlet della classe Service Management, è visibile una riga corrispondente al server su cui è istanziato il servizio.

 

info

Se il servizio è istanziato, è possibile recuperare i metadati dei Catalog esposti, mediante apposita richiesta (get).

 

La configurazione e l'esposizione di componenti IrionEDM attraverso i servizi WebAPI si effettua accedendo al Control Panel.

 

IrionEDM mette a disposizione del protocollo OData i server degli schemi relativi a:

Catalog schema

Shelf

Book

In particolare, nel caso di un book, è possibile utilizzare:

la chiamata a command in esso definiti;

i dati dell'IsolData Model del Book, sia in lettura che in scrittura (i.e. in modalità GET e POST).

 

warning

IrionEDM non implementa soluzioni per la costruzione delle interfacce web, limitandosi a fornire gli schemi sopra elencati, su cui è possibile intervenire sia in GET che in POST.

 

info

Il WebAPI Server non dispone di un sistema di recovery nativo. Pertanto, nel caso il servizio SQL Server sia riavviato, occorre riavviare anche il servizio WebAPI.

 

Seguono alcuni esempi di risposta ad una chiamata al WebAPI Server:

ex

ESEMPI DI RISPOSTA DA PARTE DEL SERVIZIO

Una richiesta di lettura dei metadati di catalogo:

http://server:port/irion/catalog/$metadata 

 

restituisce l'XML:

<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">

   <edmx:DataServices>

      <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Catalog">

         <EntityType Name="PublishedObject">

            <Key>

               <PropertyRef Name="Webname"/>

            </Key>

            <Property Name="Type" Type="Edm.String" Nullable="false" MaxLength="10" Unicode="false"/>

            <Property Name="Webname" Type="Edm.String" Nullable="false" MaxLength="150" Unicode="false"/>

         </EntityType>

         <Action Name="book">

            <Parameter Name="Chapters" Type="Edm.String"/>

            <ReturnType Type="Edm.String"/>

         </Action>

         <EntityContainer Name="catalog">

            <EntitySet Name="PublishedObject" EntityType="Catalog.PublishedObject"/>

            <ActionImport Name="book" Action="Catalog.book"/>

         </EntityContainer>

      </Schema>

   </edmx:DataServices>

</edmx:Edmx>

 

Una richiesta di lettura da uno shelf esposto:

http://server:port/irion/shelf/PublishedShelfName/nws 

 

restituisce il JSON:

{

  "@odata.context":"http://server:port/irion/shelf/PublishedShelfName/nws","value":[

    {

      "name":"Customers","kind":"EntitySet","url":"Customers"

    },{

      "name":"Orders","kind":"EntitySet","url":"Orders"

    },{

      "name":"DataBoxList","kind":"EntitySet","url":"DataBoxList"

    }

  ]

}.

 

 

APPROFONDIMENTI E ARGOMENTI CORRELATI

& Pubblicazione dei Book

& Pubblicazione dei Datashelf