Hivext:Webサービスプラットフォーム



Hivext


これは、さまざまなプログラミング言語からアクセスするための共通インターフェースを備えたWebサービスプラットフォームです。 Hivextの目標は、開発者に役立つWebサービスを提供し、安定した運用を保証すると同時に、プロジェクトへの実装を容易にすることです。 Hivextは、単一のAPIを介して多くの既存のプラットフォームを接続するのに役立ちます。

モバイルデバイス向けの開発など、Webアプリケーションをすばやく簡単に作成したい場合、このプラットフォームは非常に興味深いツールです。

前の記事は、プラットフォーム、そのアーキテクチャ、目標、目的を理解するのに役立ちます。 この記事では、最近プラットフォームに追加された変更と新しいサービスを公開し続けます。


大きな変更


基本サービス


登録

共通データベースへの新規ユーザーの登録。 メールによるアクティベーションシステムが使用されます。
登録時に必要なパラメーターは、郵送先住所とパスワードです。

登録サービスのドキュメント

認証と認証

登録ユーザーの認証。 サービスの特徴:
認証および認証サービスのドキュメント

アカウント管理

ユーザー個人データ管理サービス。 必要なメソッドのセットが定義されています:
アカウントサービスのドキュメント

アプリケーション管理

プラットフォーム用のアプリケーションの開発を開始するには、開発者は以下を必要とします
すべてのサービスメソッドは、アプリケーション識別子を認識して呼び出されます。 アプリケーション識別子がないと、サービスメソッドを呼び出すことができます。 アプリケーション識別子は、ドメイン、IPアドレス、またはエイリアス(ドメインおよび/またはIPアドレス)に割り当てることができます。 つまり 他のドメイン/ IPで特定のキーの使用がブロックされています。

アプリケーションサービスのドキュメント

サービス構造の開発で。 既存のプラットフォーム構造をプロジェクトのニーズに合わせて拡張できるのは、このサービスです。

サービス利用例


API Consoleは、基本的なサービスに基づいたWebアプリケーションです。

認証サービスの例


この例はJavaScriptで作成され、認証、セッション終了、ユーザー識別などの機能を実装しています。

ステップ1:ドキュメントを調べ、必要な機能を選択します

認証および認証サービスのドキュメント

必要な方法を選択します。 メソッドが必要です: SigninSignoutCheckSign
このサービスの既製のクライアントがあるかどうかを確認します。 JavaScript用のクライアントが必要です。

(必要な言語の)クライアントサービスがない場合、メソッドにはそれを呼び出すのに十分な情報があります。 たとえば、Signinメソッドの場合、HTTP GETリクエストを行う必要があり、パラメーターはurlEncodingでエンコードされます 。 リクエストの例:
http://api.hivext.ru/1.0/users/authentication/rest/signin?appid=1dd8d191d38fff45e62564fcf67fdcd6&email=email@email.com&password=12345678

ステップ2:サービスクライアントを接続する

< script src ="http://code.hivext.ru/frameworks/js/core.js" type ="text/javascript" ></ script >
< script src ="http://api.hivext.ru/1.0/users/authentication.js" type ="text/javascript" ></ script >


ステップ3:適切なアプリケーションフレームワークを作成する

< style > <br> <br>body {<br> font-family: "Lucida Grande", Tahoma, Verdana, Arial, Sans-Serif;<br> font-size: 10pt;<br> color:#333;<br>}<br> <br>.error {<br> border: 1px solid #ff5050;<br> background-color: #ffc5b5;<br> padding: 4px 10px;<br> margin-bottom: 6px;<br> display: none;<br> font-size: 8pt;<br> font-weight: bold;<br>}<br><br> </ style > <br><br> < body onload ="Load()" > <br><br> < div id ="error" class ="error" ></ div > <br> <br> < div id ="signin_block" style ="display: none" > <br> :     < input id ="email" />     <br>:     < input id ="password" type ="password" />     <br> < input id ="signin" value ="Sign In" type ="button" /> <br> </ div > <br> <br> < div id ="signout_block" style ="display: none" > <br> < div id ="welcome_message" /> <br> < input id ="signout" value ="Sign Out" type ="button" /> <br> </ div > <br> <br> </ body > <br><br> * This source code was highlighted with Source Code Highlighter .

ステップ4:イベントハンドラーをインストールし、必要なロジックを実装する

// <br> // onload body. <br> // <br><br> function Load() {<br><br> function id(element) { return document .getElementById(element); }<br> function error(result, error) { return "Code: " + result + "<br />Error: " + error;}<br><br> var sAppId = "0123456789ABCDEF0123456789ABCDEF" ; // . <br> var sSession; // . <br><br> // , cookies ( 3rd party cookies) <br> sSession = Cookies.Set( "session" );<br><br> // (Sign In). <br> id( "signin" ).onclick = function () {<br><br> // . <br> if (!id( "email" ).value || !id( "password" ).value) { <br> id( "error" ).innerHTML = " ." ;<br> id( "error" ).style.display = "block" ;<br> return false ;<br> }<br><br> // <br> // . <br> // <br><br> Users.Authentication.Signin(sAppId, id( "email" ).value, id( "password" ).value, function (oResponse) {<br> if (oResponse.result === 0) {<br> // , Sign Out ( ). <br> id( "error" ).style.display = "none" ;<br> id( "signin_block" ).style.display = "none" ;<br> id( "signout_block" ).style.display = "block" ;<br><br> // . . <br> sSession = oResponse.session;<br><br> // ( cookies - 3rd party cookies). <br> Cookies.Set( "session" , sSession);<br><br> } else {<br> // , . <br> id( "error" ).innerHTML = error(oResponse.result, oResponse.error);<br> id( "error" ).style.display = "block" ;<br> }<br> });<br><br> return true ;<br> }<br><br> // (Sign Out). <br> id( "signout" ).onclick = function () {<br><br> // <br> // . <br> // <br><br> Users.Authentication.Signout(sAppId, sSession, function (oResponse) {<br> if (oResponse.result === 0) {<br> // . <br> id( "error" ).style.display = "none" ;<br> id( "signin_block" ).style.display = "block" ;<br> id( "signout_block" ).style.display = "none" ;<br> <br> // , . <br> Cookies.Clear( "session" );<br> } else {<br> id( "error" ).innerHTML = error(oResponse.result, oResponse.error);<br> id( "error" ).style.display = "block" ;<br> }<br> });<br> }<br><br> // <br> // . <br> // <br><br> Users.Authentication.CheckSign(sAppId, sSession, function (oResponse) {<br> if (oResponse.result === 0) {<br> // , , . <br> id( "signin_block" ).style.display = "none" ;<br> id( "signout_block" ).style.display = "block" ;<br> } else {<br> // , . <br> id( "signin_block" ).style.display = "block" ;<br> id( "signout_block" ).style.display = "none" ;<br> }<br> });<br>} <br><br> * This source code was highlighted with Source Code Highlighter .

考慮される認証の例を次に示します。http//code.hivext.ru/examples/js/common/sign.html
ログイン: guest@guest.com 、パスワード: guest

用途


プラットフォームドキュメント: doc.hivext.ru
アプリケーションとコンポーネント: hivext.ru/index.php/Components
サンプルのソースコードは、LGPL3ライセンスの下でライセンスされています。

開発者


Alexandrov K.M. m007 、Ruslan Sinitsky サイラス

更新 :このトピックは興味深いが、その本質がまだ完全に理解されていない場合は、いくつかのスキームと作業の説明を含む別の記事を作成します。

Source: https://habr.com/ru/post/J50771/


All Articles