はじめに
みんなさん、こんにちは。
今回はRAMLについて、紹介していきたいと思います。
RAMLとは
RAMLは、Anypoint Plarform上RESTful APIを設計する言語です。
YAMLベースで、APIの設計、構築、テスト、ドキュメンテーションを行うことができます。
そもそもなんでRAMLが必要なのか
結論から申し上げますと、三つあると考えております。
-
設計優先の思考: コードの実装前に潜在的な設計問題を特定し、対処することができます。
-
広い範囲の可読性: 開発者、プロジェクトマネージャー、ステークホルダーなど、誰でもAPIの振る舞いを容易に理解することができます。
-
自動化されたドキュメンテーション生成: RAMLはAPIのドキュメンテーションを生成するために使用できます。これにより、APIの使用者がAPIを理解し、使用するのがより容易になります。
-
実装前にセキュリティが設定できる: RAMLをExchangeにパブリッシュ後、直接API Managerと紐付けるため、セキュリティ関連の設定も同時にできるので、更に工数削減ができます。
これにより、RAMLがないと、直接Anypoint Studioにで実装を飛び込んでしまうと、潜在問題の発見が遅くなり、余計な工数がかかってしまいます。建築物の設計図みたいなもので、Mulesoftに不可欠な存在です。
RAMLの作成手順
書き方
HP:
https://raml.org/developers/raml-200-tutorial
各コンポーネント:
Data Type: データ型フラグメントは、APIで使用する特定のデータ構造を定義します。これらは一般的にJSONまたはXMLスキーマで表現され、リクエストやレスポンスのボディで利用されます。
Security Schemes: セキュリティスキームフラグメントは、APIがサポートする認証メソッド(OAuth、Basic認証など)を定義します。これはAPI全体、または特定のエンドポイントに対するセキュリティ要件を表現します。
Traits: トレイトフラグメントは、APIエンドポイントに共通の特性や振る舞いを定義します。これはエラーメッセージ、ページネーション、レート制限などの一般的なパターンを再利用可能にします。
Resource Types: リソースタイプフラグメントは、API内の特定のリソース(エンドポイント)の振る舞いを定義します。リソースタイプは、特定のリソースのGET、POST、PUT、DELETEなどのHTTPメソッドの振る舞いを一元的に定義します。
Examples: 例フラグメントは、特定のリクエストまたはレスポンスの具体的な例を提供します。これは一般的にAPIドキュメンテーションで使用され、開発者がAPIの使用方法を理解するのに役立ちます。
Annotation Types: アノテーションタイプフラグメントは、API定義にメタデータを追加するために使用されます。これにより、ドキュメンテーション、ツール、ライブラリなどに追加情報を提供できます。
Library: ライブラリフラグメントは、再利用可能な要素(データ型、トレイト、リソースタイプなど)をグループ化します。ライブラリは他のRAMLドキュメントから参照され、再利用されます。
User Documentation: ユーザードキュメンテーションフラグメントは、APIの使用方法に関する情報を提供します。これは一般的に非技術的なユーザーに対する説明や、APIの背後のビジネスロジックを説明するために使用されます。
デモリンク
終わりに
最後までお読みいただき、本当にありがとうございました。
RAMLに関する、すこし理解できましたら嬉しいです。フィードバックが頂きましたら幸いです。