MIDAS Open API
ウェブ環境は私たちの日常生活のいたるところにあります。より良いビジョンと将来への備えのために、MIDAS は従来の API ではなく、ウェブベースの API を採用しました。
API vs. Web API
従来の API と Web API には、以下のように異なる特徴があります。
特徴 | API | Web API |
アクセス方法 | 主にプログラミング言語内で呼び出される | HTTPプロトコルを介したWebリクエスト |
通信プロトコル | 利用可能なさまざまなプロトコル | 主にHTTP/HTTPSを使用 |
リクエストとレスポンスのフォーマット | さまざまなデータ形式が利用可能 | 主にJSONまたはXMLを使用 |
利用目的 | プログラム間の統合やライブラリの利用にのみ使用 | 主にWebアプリケーション間でデータを共有したり、サービスを外部開発者に公開したりするために使用 |
安全性 | 認証や認可に関するカスタマイズが可能 |
OAuth 2.0 と API キーおよび認証を使用した認証 |
アクセス制御 | 主にローカルネットワークまたはコンピュータ上でアクセス | インターネット経由でリモートコントロールにアクセス |
プラットフォームの依存関係 | 言語やプラットフォームに依存した依存関係を実現可能 | WebブラウザまたはHTTPクライアントを介してプラットフォームに依存せずに使用可能 |
上記のリストは各方法の特徴であり、同時に長所と短所となる可能性があります。
構造
MIDAS CIVIL NX オープン API は、Web とネットワーク API テクノロジの統合結果です。より効果的で安定したサービスを提供できます。
MIDAS CIVIL NX は、アプリケーションと直接インターフェイスしません。
ユーザー (クライアント) を含む他のアプリケーションは、REST API を使用して Web 経由でサーバーと通信し、最終的に WebSocket テクノロジを使用して接続された MIDAS CIVIL NX とコミュニケーションします。つまり、サーバー (AWS) は、MIDAS 製品とアプリケーション間の仲介役として機能します。
ユーザーはおそらく次の方法でシステムと対話する可能性があります。
サーバーは複数の WebSocket クライアント (MIDAS 製品) を同時に処理できます。これらのさまざまな製品は、”MAPI キー”によって識別されます。したがって、クライアント (アプリケーション) は、製品を指定するために REST API を要求するときに、ヘッダーに”MAPI キー”を含める必要があります。
この運用モデルは、1 つのクライアントが複数の MAPI キーの情報を持っている場合、さまざまな製品を 1 か所で管理できることを意味します。
”MAPI キー”のセキュリティに注意してください。ただし、”MAPI キー”は一時的なキーとして機能します。必要に応じて、いつでも変更できます。文字と数字の長い組み合わせで構成されているため、ランダムに推測することはほぼ不可能です。
動作
MIDAS Open API の基本的な操作を概念的な例で説明します。
- クライアントは次のようにサーバーに REST API を要求します。
- HTTP 手法:“GET”
- URL:“/db/node”
- ヘッダ:“MAPI-Key”: “######”
- リクエストを受け取ったサーバーは製品を見つけ、ノード情報を要求します。
- 製品はノード情報をサーバーに送信します。
- ノード情報を取得したサーバーは、それをクライアントに再送信します。
これらの操作特性により、ユーザーはローカル PC で発生する全てのことについて混乱する可能性があります。MIDAS CIVIL NX はアプリケーションとインターフェイスしません。前述したように、API 操作は上記の例のようにサーバー経由で行われます。
特徴
MIDAS CIVIL NX Open API は Web API であるため、いくつかの機能が備わっています。
主な特徴は次のとおりです。
1.プラットフォーム/言語の独立性:
- これは、HTTP リクエスト (C、C++、C#、VB、VBA、Java、JavaScript、Typescript、Python など) を使用するあらゆるアプリケーションで利用できます。
- さまざまなアプリケーション特性を持つアプリケーションの形成を可能にします。
2.制限されたデータ形式:
-
- JSON 形式のデータのみを使用し、各アプリケーションは JSON を解析して利用します。
- ほとんどのアプリケーションは、JSON を処理するための基本ライブラリまたはユーザー ライブラリを提供します。
3.スケーラビリティ:
-
- リモート アクセス、複数のクライアント接続、Web ベースの接続による制御のスケーラビリティを備えています。
- これにより、サーバーと複数のクライアント間の効率的な通信とコラボレーションが可能になります。