Extern webapi

Î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:

  1. Accept: application / xml (sau Content-Type: application / xml pentru cerere POST) - pentru schimbul în format XML
  2. 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".

Extern webapi

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

Extern webapi

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

Extern webapi

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.

Extern webapi

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

Extern webapi

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.

Extern webapi

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ă.

Extern webapi

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

Extern webapi

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.

Extern webapi






Lista tipurilor de obiecte (entități)

Conține informații despre toate obiectele din sistem, inclusiv procesele.

Extern webapi

Extern webapi

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

Extern webapi

Lista transferurilor

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

Extern webapi

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

Extern webapi

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.

Extern webapi

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"
>

  1. typeUid - identificator unic de tipul "Task".
  2. 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.

  1. typeUid - identificator unic de tipul "Task".
  2. eqlQuery este o interogare EQL.
  3. limita - numărul de articole primite
  4. offset - element de pornire
  5. sortare - sortare
  6. filterProviderUid - identificatorul unic al furnizorului de filtrare
  7. filterProviderData - date pentru furnizorul de filtrare
  8. 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

Extern webapi

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

Extern webapi

Î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:

  1. Mesaj de eroare
  2. Codul de eroare bazat pe Web (exemplu: 400, 401, 500)
  3. 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:

  1. Eroare la executarea codului pe server
  2. Absența unui obiect specific (exemplu: utilizarea funcției Încărcare)
  3. 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ă:

Versiunea API 1.0.1 în ELMA 3.2

Un exemplu de implementare a propriului serviciu WebAPI







Articole similare

Trimiteți-le prietenilor: