Notă: acest devblog este destinat în principal dezvoltatorilor terți și capsulelor tehnice competente. Dacă doriți să săriți jargonul, derulați în jos și găsiți TL; DR
preistorie
Și astfel reprezentăm CREST, iar acesta este și un progres. Acesta utilizează un format de date mai ușor de înțeles, o interfață simplificată și acces rapid la modelarea datelor operaționale. În cele din urmă, aceasta deschide calea pentru înregistrarea punctelor finale, care este utilizată peste tot, dar pentru prima dată în industria jocurilor de noroc. Unele lucrări create pe baza noilor capabilități CREST sunt pur și simplu uimitoare, iar noi auzim constant idei noi și inovatoare, multe dintre ele putând fi realizate folosind noile capacități CREST puternice.
De asemenea, în mod ideal, CREST este planificată să se facă indexabilă. Combinația dintre opțiunile generabile automat și cele asociate cu structura rădăcină a API oferă auto-indexarea completă a API-ului. Acest lucru a dus la un succes, iar colectarea de date CREST API este cu siguranță o modalitate bună pentru utilizatori să o învețe. Cu toate acestea, au fost identificate și anumite probleme. O mare parte din date nu pot fi indexate până când nu sunt îndeplinite anumite condiții de joc, cum ar fi definirea corectă a rolurilor corporative sau definiția proprietarului cetatii, și nu toate resursele sunt corelate corect. Este destul de greu să explici de ce nu aveți acces la anumite lucruri. Dezvoltatorii CREST se referă în continuare la protocoalele terților pentru o descriere completă a API-ului. A fost o încercare îndrăzneață, dar acest lucru nu este suficient.
Între timp, în general, în industria jocurilor ...
În ultimii ani, industria de software a fost în curs de dezvoltare diferite și revizuirea arhitecturii de API diferite. În primul rând, din toate aceste haosuri, a apărut schema standard JSON și apoi a ieșit din ea specificația Swagger. Acesta este conceptul principal al ESI, să ascultăm ce spune el însuși despre el însuși:
Swagger ™ este un program folosit pentru descrierea și înregistrarea API-urilor RESTful. Specificația swagger definește setul de fișiere necesare pentru a descrie un anumit API. Aceste fișiere pot fi utilizate de sistemul Swagger-UI pentru a afișa API și Swagger-Codegen pentru a crea o parte client în diferite limbi. Utilitățile suplimentare pot beneficia, de asemenea, de fișierele rezultate, cum ar fi instrumentele de testare.
Acesta este fundamentul pe care le-am ales pentru a construi EVE Swagger Interface, cadrul unificator al specificațiilor din multele servicii Kubernetes într-un singur mecanism, care este în același timp implicat în rutare, de autentificare, datele de intrare / ieșire, și multe alte caracteristici.
Ce este ESI pentru noi?
Indexarea primară înseamnă că în interiorul sistemului am folosit instrucțiuni Swagger pentru a genera API-urile noastre. Primul pas este de a crea sau actualiza rezultatul final al oricărui act este acela de a crea sau actualiza o instrucțiune corespunzătoare care definește toate structura noastră internă de date pentru procesarea rezultatului final, ceea ce înseamnă că înregistrările de date sunt întotdeauna actualizate, deoarece acestea sunt integrate cu partea principală a codului rezultat final. Nu te uita acum, dar putem avea această documentație gremlin. În plus față de toate, instrumentele Swagger permit dezvoltatorilor terță parte să își folosească codul pentru a crea o interfață pentru API-ul ESI în limba pe care o aleg. O mare bucată de timp dezvoltator care a folosit pentru a construi interfața pentru CREST și XML API este acum eliberată din această lucrare de șablon. (te-am înlocuit cu roboți, îmi pare rău.)
Compatibilitatea cu șabloanele de bază înseamnă că am folosit instrumentele de bază ale industriei de dezvoltare. Am incercat sa adaugam cel putin un minim de instrumente speciale numai in cazul in care nu putem face fara ea, in rest ne-am incercat sa inlocuim obiectele personalizate cu imprimante de solutie standard, daca este posibil. API-ul EVE nu a fost niciodată atât de ușor de întreținut și de scalabil, ceea ce deschide caracteristici nedisponibile anterior. Plicurile mici pot fi trimise de la calculatorul dezvoltatorului la aplicarea lor în câteva minute, iar dacă este necesar, toate modificările pot fi derulate înapoi în aproape orice direcție, cu o întârziere practică zero.
Scalingul orizontal este o soluție elegantă pe care am împrumutat-o de la Kubernetes. Deoarece toate codurile ESI care nu trebuie să fie în mod specific care rulează pe serverul nostru, Tranquility, și nu au nevoie pentru a rula pe Google Cloud, putem controla conexiunea de noi containere ESI pe fiecare rezultat în baza căruia este necesară, iar închiderea acestor componente atunci când acestea nu mai sunt necesare.
Citire / Scriere. desigur, intenționăm să facem API-uri ușor de citit rezultate aproape asemănătoare cu CREST, inclusiv cele care sunt problematice chiar și acum, va fi la fel de ușor ca trimiterea poștei electronice. În general, este ca CREST doar mai bine.
Deci, ce zici de vechiul XML API și CREST?
E prea devreme pentru a intra în panică. Nu am venit aici să anunțăm că vom distruge imediat toate aplicațiile dvs. și că trebuie să rescrieți imediat codul, dar considerăm că este necesar să discutăm despre reducerea codului și despre fragmentarea lui. Suport pentru API triplu cu similar. dar funcționalitatea care nu se suprapune crește complexitatea tehnică a creării modelelor EVE API active și este nevoie de timp de la acestea. grupuri pe care le-ar cheltui pe dezvoltarea de noi instrumente și servicii de noi instrumente. Toate acestea reduc flexibilitatea și sporesc instabilitatea, iar acest lucru nu este bun în ceea ce privește dezvoltarea pe termen lung.
Odată ce vom recrea toate capabilitățile actuale ale CREST și XML API-ul în ESI, vom închide imediat ambele servicii. Am planificat 18 luni de la lansarea acestui blog până când ESI a obținut funcționalitatea necesară și vom colabora cu dezvoltatorul de aplicații pentru a-și actualiza produsele. Eliminarea necesității de a utiliza API XML este obiectivul nostru principal. Vom monitoriza utilizarea API-ului XML și CREST pentru a identifica și a ajuta dezvoltatorii terți în tranziția la noul sistem.
Va fi o plecare clară și planificată din vechiul sistem. Primul pas al acestui proces este că, de la lansarea acestui blog, CREST și XML API sunt oficial doar în modul de întreținere în stare de funcționare.
Vom continua să lansăm actualizări pentru a proteja datele și pentru a repara erorile critice, dar toate cererile noi vor fi executate de API-ul ESI.
Acces rapid
În ultima lună, am colaborat îndeaproape cu mai mulți membri activi ai comunității de dezvoltatori de servicii terțe pentru EVE, printre care:
Am interacționat cu aceste echipe. precum și cu focus grupuri. pentru a primi feedback cu privire la etapele inițiale ale dezvoltării proiectului și la unele decizii inițiale de proiectare. Mai jos puteți vedea ce pot spune acum despre impresiile lor:
Introducerea ESI, ca un nou API, este destul de aproape de modul în care lucrează CREST, trecerea la un nou sistem ar trebui să fie destul de ușoară. De asemenea, rezolvă problema principalelor aplicații API pentru dezvoltatorii de "sperietoare" pentru EVE. Lipsa documentației și a exemplelor. Utilizarea programului Swagger va facilita lucrul cu API-ul și va elimina problema unor neconcordanțe din lista problemelor dezvoltatorilor. În cele din urmă, posibilitatea de a trimite EVEMail este deschisă, precum și primirea acestora, este un progres important care vă permite să creați niște servicii automatizate. ceea ce era imposibil înainte.
- Steve Ronuken
ESI este soluția la problema pe care CCP a avut de luptat de câțiva ani: capacitatea de a actualiza rapid și ușor API pentru dezvoltatorii terți. În ultimele săptămâni, dezvoltatorii cu care am lucrat au arătat care ESI este adaptabil și cum se pot adăuga cu ușurință noi caracteristici. Știu că o mulțime de dezvoltatori terți nu sunt foarte mulțumiți de perspectiva copierii unei mulțimi de utilități, iar eu sunt unul dintre ei, dar acesta este prețul care va trebui să plătească pentru progresul tehnic. PCC îndepărtează de întoarcerea tehnică și ne conduce în direcția progresului tehnic. EveWho.com utilizează deja utilități bazate pe ESI și mă bucur liniștit la rezultatele muncii lor.
- Squizz Caphinator
Interfața EVE Swagger combină capacitățile XML AP cu inovațiile CREST, în timp ce introducerea în documentație este o caracteristică oficială. CREST ", astfel de sisteme le-au permis oamenilor să facă lucruri minunate cu limbi dinamice, ESI este mai aproape de cei care ne place să folosim limbi statice; oferind o interfață mai riguroasă și îmbunătățind aspectele legate de utilizator ale CREST. Cred că acest proiect reprezintă o oportunitate excelentă pentru îmbunătățirea în continuare a CREST, modernizarea API-ului XML, iar dezvoltarea aplicațiilor pentru EVE va deveni mai accesibilă pentru începători.
- Lucia Denniard
Noul API vine în EVE, numele său este ESI. Se bazează pe specificația OpenAPI, documentată pe deplin și vă va ușura viața dacă doriți să faceți o cerere pentru EVE Online. Acesta va fi introdus în câteva luni și deja procesează deja până la 4,5 milioane de cereri pe zi.
Într-un viitor glorios!
PS: dacă sunteți în continuare interesat de designul ESI, aruncați o privire la următorul blog Introducerea API-ului ESI.