În plus față de numărul mare de servicii funcționale servicii de rădăcină disponibile pe server, aceste servicii oferă modulele funcționale ale sistemului: executarea sarcinilor, creează sarcini și evenimente din calendar, etc.
Serviciile de sistem rădăcină
Serviciile rădăcină includ:
Pentru toate serviciile de root, există 2 puncte de intrare: WCF HTTP și WCF SOAP. Puteți accesa acest sau acel punct în felul următor:
/ API / REST /<Имя сервиса>/ Ajutor. pentru AutorizareService va fi
În modul WCF HTTP, toate serviciile (cu excepția MetadataService) acceptă atât formate de date XML, cât și JSON. Formatul este setat utilizând antetul:
- Accept: application / xml (sau Content-Type: application / xml pentru cerere POST) - pentru schimbul în format XML
- Accept: application / json (sau Content-Type: cerere / json pentru cerere POST) - pentru schimb în format JSON
Serviciul MetadataService acceptă numai formatul de schimb XML de date
Aplicații de încredere și sesiuni de conectare
Jetonul aplicației poate fi configurat și vizualizat pe pagina serverului Elma
Setările pentru jetoanele de aplicații externe sunt efectuate în secțiunea de administrare, cu un număr de jetoane de sistem a căror durată de expirare este setată separat pentru fiecare aplicație.
Creați o nouă aplicație externă și un jeton
Creați o aplicație externă și un jeton pentru aceasta. Pentru aceasta, mergeți la secțiunea Administrare -> Sistem -> Aplicații externe și faceți clic pe butonul "Adăugați".

Apoi, completați câmpurile necesare pentru aplicația noastră și faceți clic pe "Salvați".

După aceasta, trebuie să accesați aplicația creată și să o activați.

Acum puteți adăuga un simbol. Mergem la fila "Jetoane de aplicație", dați clic pe "Adăugați un jeton" și selectați data de expirare.

O nouă aplicație externă este gata, iar acum puteți lucra cu aceasta.
Ajutați-vă cu WebAPI
Există un ajutor generat automat de WebAPI. Acesta conține informații despre ce servicii sunt disponibile, obiecte, enumerări și tipuri de date pentru proprietăți. Acesta este localizat de link-ul relativ

Să analizăm mai detaliat fiecare dintre aceste puncte.
Lista serviciilor publice publice disponibile
Conține informații despre ce servicii web ale sistemului sunt disponibile pentru a apela aplicații terță parte.

Fiecare dintre serviciile Web conține informații despre metodele care pot fi apelate de la acest serviciu web, precum și despre parametrii metodei și valoarea returnată.

De asemenea, fiecare serviciu conține informații despre metodele de a apela metodele: fie prin WSDL. sau prin solicitări Http.
Apelați informațiile prin WSDL
Informații despre apel prin solicitări Http

Intrând în cadrul metodei, puteți afla informații despre formatul în care doriți să creați o interogare și în ce formă vine răspunsul.

Lista tipurilor de obiecte (entități)
Conține informații despre toate obiectele din sistem, inclusiv procesele.


Fiecare tip prezentat aici conține informații despre proprietățile sale. Procesele conțin informații despre contextul lor.

Lista transferurilor
Conține informații despre toate enumerările disponibile ale sistemului.

Fiecare enumerare prezentată aici stochează informații despre valorile sale.

Lista tipurilor de date pentru proprietăți
Conține informații despre identificatorii tipului de date. aici:
- Esență (72ed98ca-f260-4671-9bcd-ff1d80235f47)
- Tipul proiectului (d1397b84-f5ab-4665-984f-fdeb8f77eb0b)
- Tipul documentului (a3a41ae4-30e2-4c46-bba2-ee55efdc7b90)
- Tip RKK (691ed407-4007-4530-834b-0c6a34bb9af1)
- Enumerarea (849c1ac9-4d46-4194-8cbb-43f84adf9c17)
2. Identificatorul subtipului de date este un identificator unic pentru fiecare tip de obiect. Acest identificator nu poate fi repetat.

Un exemplu de utilizare a WebAPI
Există două opțiuni pentru interacțiunea cu codul WebAPI: prin intermediul serviciilor WSDL și prin solicitările Http. Mai jos sunt exemple de lucru minime cu web pentru fiecare opțiune.
Lucrul prin solicitări Http
pentru că există lucrul cu firul, după ce se folosește funcția ReadToEnd (), nu vor exista caractere în variabila sr (va rămâne doar un șir gol). Rezultatul funcției va fi astfel:
<
"AuthToken": "39c45713-59c0-48db-aeee-77e93579b330",
"CurrentUserId": "1",
"Lang": "en-RU",
"SessionToken": "0B56F7016540A75C5352942FDD3E40FAC7E73663B3BD1279B39780215603285F28432FD2D2940842A5BFF83BA97830A07577004F6CE61E10E2A9C1885A74192B"
>
- typeUid - identificator unic de tipul "Task".
- entityId - identificator de obiect
Aici este prezentată doar o parte a răspunsului, tk. întregul răspuns este prea mare. Dacă aveți nevoie doar de o parte din câmpurile unui obiect, utilizați funcția LoadTree. Pentru a încărca mai multe obiecte o interogare, utilizați funcția de interogare (pentru a prelua toate câmpurile obiectului) sau QueryTree (pentru încărcarea anumitor câmpuri obiect).
Iată codul pentru a apela funcția Interogare.
- typeUid - identificator unic de tipul "Task".
- eqlQuery este o interogare EQL.
- limita - numărul de articole primite
- offset - element de pornire
- sortare - sortare
- filterProviderUid - identificatorul unic al furnizorului de filtrare
- filterProviderData - date pentru furnizorul de filtrare
- filtru - valorile campului pentru un filtru entitate
În câmpul "Rezultat" A revenit True. Aceasta înseamnă că sarcina a fost finalizată cu succes. Dacă dintr-un anumit motiv acest lucru nu reușește, câmpul Fult va reveni la câmpul Rezultat.
Lucrul cu WSDL

Dacă serviciul este adăugat cu succes, serviciul apare în "Solution Explorer".

În mod similar, adăugăm o referință la IEntityService.
Aici avem nevoie de spațiul de nume System.ServiceModel.Web.
Să mergem la muncă. Pentru comoditate, creați clasa WsdlService și începeți lucrul în ea.
Variabila _entityServiceFactory (și similară) servește la crearea unui canal de comunicare cu serverul. Ele sunt inițializate în funcția TestStart (). Canalul de comunicare în sine este creat folosind CreateChannel ().
Luați în considerare funcția GetAuthToken (). Variabila authorizationService este un serviciu deja creat, conține metode în sine care sunt descrise în ajutorul WebAPI.
Utilizarea canalului apare la utilizarea (...) <…>. Acest lucru este necesar pentru a transfera anteturile necesare atunci când utilizați diferite funcții de service.
După ce ați prins această eroare, puteți obține următoarele informații:
- Mesaj de eroare
- Codul de eroare bazat pe Web (exemplu: 400, 401, 500)
- Eroare internă (dacă există)
și multe altele.
Codul de eroare 500 este asociat cu o eroare internă a serverului. Cel mai adesea motivul poate fi:
- Eroare la executarea codului pe server
- Absența unui obiect specific (exemplu: utilizarea funcției Încărcare)
- Absența unui anumit tip de obiect (când tipulUid nu există)
Teoretic posibile erori cu alte coduri, dar sunt foarte rare.
Mergeți pentru a încărca sarcina. Adăugați funcția LoadTask () la clasa creată.
Numai o parte din câmpurile returnate de funcție sunt reprezentate aici.
Unele funcții pot afișa următoarea eroare:
Informații suplimentare: Limita maximă a dimensiunii mesajului pentru mesajele primite a fost depășită (65536). Pentru a crește cota, utilizați proprietatea MaxReceivedMessageSize a elementului obligatoriu corespunzător »
Acest lucru se datorează faptului că răspunsul de la server este prea mare, iar restricția aplicației dvs. nu poate lipsi. Pentru a evita acest lucru, utilizați inițializarea variabilelor _entityServiceFactory după cum urmează: