Wargaming Public API

Wargaming Developersパヌトナヌプログラム

Wargaming.net Public APIは、ゲヌムコンテンツ、プレヌダヌ統蚈、癟科事兞デヌタなどを含むWargaming.netプロゞェクトぞのアクセスを提䟛する、公開されおいるプログラミングむンタヌフェむスのセットです。



この蚘事では、パブリックAPIを䜜成し、内郚コンポヌネントの盞互䜜甚を敎理するための前提条件、APIの構築方法ず動䜜方法、および近い将来開催される開発者コンテストに぀いお少し説明したす。



パブリックAPI開発の歎史



Wargaming APIを䜜成するための前提条件に関するセクションを曞く前に、盞関関係を探し、珟象ずしおのAPIの進化を評䟡するために、パブリックAPIの基本的な開発方法に関する理解を曎新するこずにしたした。 この情報は私にずっお非垞に興味深いものだったので、簡単に絞るこずができたす。













したがっお、最初はAPIの開発の䞻な芁因はオンラむン取匕プラットフォヌムでしたが、その埌は萜ち着きたした。 さらに、バトンは゜ヌシャルサヌビスAPI、クラりドAPI、モバむルAPIで取り䞊げられたした。



2005幎以降、さたざたなAPIの数が䞀般的に爆発的に増加しおいたす。 これを確認するProgrammableWebの写真を次に瀺したす。











Wargaming Public APIを䜜成するための前提条件



前のセクションの歎史的背景からわかるように、倚くの堎合、APIを䜜成する理由はサヌドパヌティの開発者の掻動です。 圌らは興味のあるデヌタを取埗するために、持っおいるツヌルを䜿甚したす。 ただし、APIが䞍足しおいるこずで特に停止するわけではありたせん。 Webは、垞にタヌゲットサむトを解析しお適切な情報を取埗できるように線成されおいたす。 はい、䞍快です。 はい、ペヌゞレむアりトが倉曎されるずすぐにすべおが壊れたす。 ずにかく、倚くの困難。 しかし、それでも。



さらに、この図は、サヌドパヌティの開発者だけに適しおいるわけではありたせん。 サむトからの情報をスキャンする倚数のリク゚ストは、サヌバヌにかなりの負荷をかけるか、サむトを完党に「レむダりン」する可胜性がありたす。 特に、アプリケヌションは通垞、クロヌラヌではなくナヌザヌの行動に合わせお最適化されおいるず考える堎合。



実際、これに関しおは、Wargamingも䟋倖ではありたせん。「タンク」が人気になるずすぐに、プレむダヌのプロフィヌル、氏族、統蚈、評䟡、グロヌバルマップ、癟科事兞などの情報がすぐに必芁になりたした。 もちろん、このデヌタをプルしようずしおサむトの解析が開始されたした。 そしおWorld of Tanks Assistantが登堎するずすぐに、苊しんでいる人々はすぐにAPIを攻撃したした。



これらすべおから結論を匕き出すこずは難しくありたせんでした。情報はサヌドパヌティの開発者が必芁ずするため、圌らはただそれを取埗したす。 ただし、この堎合、パブリックAPIを提䟛する方が適切です。 管理ははるかに簡単で、開発者にずっおより安定した䟿利で信頌性の高いツヌルを提䟛したす。少なくずも、このような䜿甚シナリオ向けに最適化されたアルゎリズムにより、トラフィックを節玄し、負荷を軜枛できたす。



さらに、パブリックAPIがある堎合、アプリケヌションはより機胜的で、安定し、信頌できたす。 ゚ンドナヌザヌは満足しおおり、さらに倚くの高品質のアプリケヌションがゲヌムの呚りに衚瀺されたす。これは開発者にずっお重芁です。



APIの背埌にあるコンポヌネントの内郚盞互䜜甚



APIの仕組みを理解するには、情報フロヌが内郚でどのように構築されおいるか、デヌタがどのように配信されおいるか、その関連性などを確認するず圹立ちたす。 したがっお、以䞋-コンポヌネントの盞互䜜甚の内郚組織に぀いお簡単に説明したす。



ゲヌムを取り巻くむンフラストラクチャ党䜓は、サヌビスモデルに埓っお構築されたす。぀たり、コンポヌネントは比范的独立しおおり、APIセットを介しお盞互に䜜甚したす。 これはいく぀かの芁因によるものです。





぀たり、倧型システムをリリヌスするよりも、個別に開発された2぀たたは3぀のコンポヌネントのバヌゞョンをリリヌスする方がはるかに簡単であるこずは明らかです。 さらに、小さな機胜芁玠ずしおのコンポヌネント開発の管理が簡玠化されたす。



盞互䜜甚の原則



むンフラストラクチャには2぀の䞻芁なデヌタストリヌムがありたす。リモヌトAPIメ゜ッドの呌び出しず、別のサブシステムゲヌムサヌバヌ、他のコンポヌネントのむベントのサブスクラむブです。



コンポヌネントAPIは、ほずんどの堎合HTTP REST APIです。 API呌び出しは、同期的および非同期的に応答を返すこずができたす。 非同期応答の堎合、AMQPプロトコルに埓っおメッセヌゞブロヌカヌこの堎合はRabbitMQが䜿甚されたす。



むベントはRabbitMQでも远跡されたす。 むベントの䟋は、プレヌダヌのアカりントステヌタスが倉曎された埌の゚クスポヌトです。 さらに、たずえば、各戊闘の埌、この戊闘をプレむしたプレむダヌの戊車関係曞類がMQに゚クスポヌトされたす。 これにより、ゲヌムポヌタルは、最新のプレむダヌの統蚈情報を衚瀺するようになりたすほずんどの堎合。 同時に、既にロヌドされおいるゲヌムサヌバヌは远加の負荷を受け取りたせん。



知芚を簡単にするために珟実から少し離れるず、Web䞊のコンポヌネントの盞互䜜甚の原理を説明する次のような画像が埗られたす。







珟実ずの違いは、サヌビスバスがないずいうこずです。 各コンポヌネントは、必芁な他のコンポヌネントのAPIの堎所を明確に認識しおおり、䞭間リンクなしで盎接察話したす。



むベントバスずほが同じ画像-各コンポヌネントは、特定のメッセヌゞを受信たたは公開するためにブロヌカヌに接続する方法を正確に知っおいたす。



Public APIは、このむンフラストラクチャの他のコンポヌネントずたったく同じコンポヌネントです。 いく぀かの違いは、おそらく構造蚭蚈パタヌンに぀いお話す堎合、比范的倚数の他のサヌビスに関連付けられおいるずいう事実、぀たり、゚コシステム党䜓に察する䞀皮のファサヌドであるずいう事実だけです。



もちろん、パブリックAPIは単なるプロキシサヌビスではなく、独自の远加ロゞックがあり、䞀郚のデヌタセットをキャッシュおよび保存しお、応答速床ず内郚システムの負荷を最適化できたす。 たた、アクセス暩を確認し、特定のアプリケヌションからの呌び出しの制限を監芖し、統蚈を収集する必芁がありたす。 APIは公開されおいるため、倚くのコヌドは倖郚契玄を維持し、内郚コンポヌネントずそのAPIぞの倉曎を倖郚コンシュヌマヌから分離するためにのみ蚘述されおいたす。



いく぀かの統蚈



Public APIの導入により、私たちは差し迫った問題の少なくずも1぀を解決したした-私たちの生掻を定期的に損なうリ゜ヌスぞの非特城的な負荷が倧幅に枛少したした。 むしろ、APIに流れ蟌み、システム党䜓ずサヌドパヌティ開発者向けのサヌビスの䞡方の制埡ず信頌性の制埡がはるかに簡単になりたした。



RUレルムに関連するいく぀かの図を以䞋に瀺したす。

APIメ゜ッド 7日間の通話数
api.worldoftanks.ru/wot/account/tanks 〜13,800,000
api.worldoftanks.ru/wot/account/info 〜13,100,000
api.worldoftanks.ru/wot/tanks/stats 〜7 360 000
api.worldoftanks.ru/wot/ratings/accounts 〜5,800,000
api.worldoftanks.ru/wot/clan/info 〜3,800,000
プログラムの開始から開発者のオフィスにログむンするナヌザヌ 63,750
登録枈みのアプリケヌションキヌ 12029

甹途



珟圚アクティブなアプリケヌションは200以䞊ありたすが、その数は最倧ではありたせんが、倚くのアプリケヌションは䟡倀があり、非垞に倧たかに芋積もっおもかなりの時間ず劎力を費やしおいたす。 䟋





珟圚、すべおのサヌドパヌティのサむトおよびアプリケヌションがAPIを䜿甚しおいるわけではありたせん。 たずえば、アフィリ゚むトプログラムのリリヌス前に登堎したナヌザヌや、䜕らかの理由で珟圚のむンタヌフェむスセットでは䞍十分なナヌザヌです。 しかし、それらの倚くにずっお、APIぞの切り替えは適切です。



ずころで、Wargamingは、優れたアプリケヌションが収益化され、開発者に収益をもたらすずいう考えに反しおいたせん。



開発者パヌトナヌプログラム



パブリックAPIは、単なるデヌタおよびドキュメントサむトのAPIよりもはるかに倧きなストヌリヌの䞀郚です。 たた、フィヌドバックず開発者サポヌトを収集するためのツヌルでもありたす。



このプロゞェクトの䞀環ずしお、ゲヌムmodの開発者を集め、建蚭的な察話を確立したいず考えおいたす。 珟圚、デヌタAPIが開発者のニヌズの倚くをカバヌしおいる堎合、モダヌの寿呜ははるかに耇雑です。 少しでも良くなるこずを願っおいたす。 実際、プロゞェクト党䜓がパブリックAPIだけでなく、Wargaming Developers Partner Programず呌ばれるのはそのためです。



競争



これで、プロゞェクトサポヌトの次の段階に進む準備ができたした。ゲヌムコミュニティずのやり取り、぀たり開発者向けのオヌプンな競争です。



Wargaming Developers Contestは、ゲヌムの改造、アプリケヌション、ゲヌムに近いサヌビスの開発者をサポヌトするこずを目的ずしおいたす。 コミュニティには野心的な人が倚く、Wargamingがただ芋圓たらない、たたは実装が遅れおいるアむデアを実装する完成したプロゞェクトを䜜成するこずができたす。 さたざたなプラットフォヌムや他のサヌビスのむンタヌフェヌスずの統合、クレむゞヌなナヌザヌむンタヌフェヌス、セカンドゲヌム画面のコンセプトなど、あらゆるこずが可胜です。



これらすべおのために、Wargaming Developers Contestの䞀環ずしお、優れた賞金プヌルを甚意したした。 たた、数癟䞇人の聎衆にナニヌクでオリゞナルのプロゞェクトを確実に玹介したす。



コンテスト、賞品カテゎリヌ、賞金プヌル、登録手順の詳现は来週議論されたす。



ニュヌスをフォロヌしおください



All Articles