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 / GEN NX オープン API は、Web とネットワーク API テクノロジの統合結果です。より効果的で安定したサービスを提供できます。
MIDAS CIVIL NX / GEN NX は、アプリケーションと直接インターフェイスしません。
ユーザー (クライアント) を含む他のアプリケーションは、REST API を使用して Web 経由でサーバーと通信し、最終的に WebSocket テクノロジを使用して接続された MIDAS CIVIL NX / GEN 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 / GEN NX はアプリケーションとインターフェイスしません。前述したように、API 操作は上記の例のようにサーバー経由で行われます。
特徴
MIDAS CIVIL NX / GEN NX Open API は Web API であるため、いくつかの機能が備わっています。
主な特徴は次のとおりです。
1.プラットフォーム/言語の独立性:
- これは、HTTP リクエスト (C、C++、C#、VB、VBA、Java、JavaScript、Typescript、Python など) を使用するあらゆるアプリケーションで利用できます。
- さまざまなアプリケーション特性を持つアプリケーションの形成を可能にします。
2.制限されたデータ形式:
- JSON 形式のデータのみを使用し、各アプリケーションは JSON を解析して利用します。
- ほとんどのアプリケーションは、JSON を処理するための基本ライブラリまたはユーザー ライブラリを提供します。
3.スケーラビリティ:
- リモート アクセス、複数のクライアント接続、Web ベースの接続による制御のスケーラビリティを備えています。
- これにより、サーバーと複数のクライアント間の効率的な通信とコラボレーションが可能になります。