Hivext
これは、さまざまなプログラミング言語からアクセスするための共通インターフェースを備えたWebサービスプラットフォームです。 Hivextの目標は、開発者に役立つWebサービスを提供し、安定した運用を保証すると同時に、プロジェクトへの実装を容易にすることです。 Hivextは、単一のAPIを介して多くの既存のプラットフォームを接続するのに役立ちます。
モバイルデバイス向けの開発など、Webアプリケーションをすばやく簡単に作成したい場合、このプラットフォームは非常に興味深いツールです。前の記事は、プラットフォーム、そのアーキテクチャ、目標、目的を理解するのに役立ちます。 この記事では、最近プラットフォームに追加された変更と新しいサービスを公開し続けます。
大きな変更
- コミュニティを構築し、プラットフォームサービスに基づいて独自の開発を議論し、追加する可能性を備えた、Wikiシステム上のすべてのドキュメントの翻訳。
- 開発者には、プラットフォームの開発を開始するための基本的なサービスと構造(ユーザーの操作、登録、認証、アプリケーション、およびデータ構造の管理)が提供されます。
- 開発者が基本サービスに基づいてプラットフォームを拡張し、それに応じてこれらの開発をプロジェクトで使用し、開発を他の開発者に公開する機会を開発者に与えることが決定されました。
- サービステスト用のコンソールを追加: http : //code.hivext.ru/development/APIConsole/
基本サービス
登録共通データベースへの新規ユーザーの登録。 メールによるアクティベーションシステムが使用されます。
登録時に必要なパラメーターは、郵送先住所とパスワードです。
登録サービスのドキュメント認証と認証登録ユーザーの認証。 サービスの特徴:
- すべてのユーザーには一意のユーザー識別子(UID)があります。
- 単一のデータベースにより、システムに登録されているユーザーは、認証サービスを使用してすべてのアプリケーションにログインできます。
- 認証後、長く安全なセッションが作成されます。 セッション識別子は、他のサービスのセッションメソッドを呼び出すために使用されます。
- 認証済みのユーザーは、既に認証されている場合、データを再入力する必要はありません。 さらに、ユーザーがapp1.comドメインで認証された場合、app2.comドメインに入ると、システムはユーザーがすでに認証されていることを認識します。 このアプローチはシングルサインオンと呼ばれます。
認証および認証サービスのドキュメントアカウント管理ユーザー個人データ管理サービス。 必要なメソッドのセットが定義されています:
- ユーザー名の編集。
- ユーザーのメールアドレスの編集。
- ユーザーパスワードの編集。
アカウントサービスのドキュメントアプリケーション管理プラットフォーム用のアプリケーションの開発を開始するには、開発者は以下を必要とします
- システムに登録する(登録サービス)
- システムでの認証(識別および認証サービス)
- アプリケーション識別子の取得(アプリケーション管理サービス)
すべてのサービスメソッドは、アプリケーション識別子を認識して呼び出されます。 アプリケーション識別子がないと、サービスメソッドを呼び出すことができます。 アプリケーション識別子は、ドメイン、IPアドレス、またはエイリアス(ドメインおよび/またはIPアドレス)に割り当てることができます。 つまり 他のドメイン/ IPで特定のキーの使用がブロックされています。
アプリケーションサービスのドキュメントサービス構造の開発で。 既存のプラットフォーム構造をプロジェクトのニーズに合わせて拡張できるのは、このサービスです。
サービス利用例
API Consoleは、基本的なサービスに基づいたWebアプリケーションです。
認証サービスの例
この例はJavaScriptで作成され、認証、セッション終了、ユーザー識別などの機能を実装しています。
ステップ1:ドキュメントを調べ、必要な機能を選択します認証および認証サービスのドキュメント
必要な方法を選択します。 メソッドが必要です:
Signin 、
Signout 、
CheckSign 。
このサービスの既製のクライアントがあるかどうかを確認します。 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
サイラス更新 :このトピックは興味深いが、その本質がまだ完全に理解されていない場合は、いくつかのスキームと作業の説明を含む別の記事を作成します。