×
応用編

IBM iのIntegrated Web Servicesでは、ILEプログラムやサービスプログラムをREST Webサービスとして展開できます。IBMの公式資料には、ILEプログラムをRESTサービスとして公開する構成と手順が示されています。

これはDjangoとの統合を意味するものではありません。

APIの呼び出し元は、Java、.NET、別のクラウドアプリケーション、モバイルアプリケーションなど、業務要件に応じて選択できます。

新しい業務アプリ
      │
      │ HTTPS/REST
      ▼
API管理基盤
      │
      ▼
IBM i Integrated Web Services
      │
      ▼
既存RPGプログラム

IBMも、RPGやILEプログラムをREST Webサービスとしてクラウドアプリケーションと連携させる例を公開しています。

ただし、既存プログラムをそのまま外部公開してはいけません。

API境界で次を実装します。

  • 認証

  • 認可

  • 入力値検証

  • レート制限

  • タイムアウト

  • 監査ログ

  • エラーの変換

  • 二重実行防止

  • 接続元制限

  • TLS


RPGをAPI化する際の注意点

プログラム名をそのままAPIにしない

悪い例:

POST /api/CUSTCHG01

これでは、内部プログラムの都合が外部仕様へ漏れ出します。

良い例:

POST /api/v1/customers/{customer_id}/address-change