API設計ワークフローを効率化する:EchoAPIでスキーマを活用

スキーマはAPI開発においてデータ構造を定義するための重要なフレームワークです。データの形状と検証ルールを設定することで、一貫性と信頼性をアプリケーション全体で維持します。APIにスキーマを導入することで、データの整合性を高め、サービス間のコミュニケーションを統一フォーマットで効率化できます。このガイドでは、スキーマの重要性を解説し、EchoAPIを活用してAPI設計と機能性を最適化する方法を紹介します。

api2.jpg

EchoAPIとは?

EchoAPIは、開発者の作業を容易にするために設計された強力なAPIデバッグおよび管理ツールです。自動テスト、負荷テスト、リアルタイムのドキュメント生成などの機能を統合することで、生産性を向上させ、APIワークフローを効率化します。Chrome、VSCode、IDEAといった開発環境に対応する無償プラグインを提供しており、開発者はAPIの作成、テスト、管理を手間なく行えます。軽量かつログイン不要でアクセスできるため、ツール管理ではなく開発そのものに集中できる環境を提供します。

EchoAPI.png

EchoAPIでのスキーマ利用

スキーマを作成し、入力パラメータの定義や期待されるレスポンスの指定を行う際に、データ構造はJSONスキーマを用いて視覚的に表現されます。これにより、インターフェース設計がより容易になります。

新しいスキーマの作成

img_v3_02ei_8b8aae5b-4a9a-4396-9ad0-15615b1b30dg.jpg

フィールド:

  • スキーマ名: 必須でユニークである必要があります。通常、英数字とアンダースコアで構成されます。
  • エイリアス: 簡単に検索および表示するための母語での説明的な名前。
  • ディレクトリ: スキーマの分類と管理を可能にします。
  • 備考: スキーマの目的を説明するために使用されます。
img_v3_02ei_d92540b1-aea0-4afb-882f-f48cff4ad39g.jpg

スキーマの編集

img_v3_02ei_ccc5904f-61b2-4751-aab6-978901ae2f6g.jpg

インテリジェントインポート

インテリジェントインポート機能により、既存の構造ファイルからJSONスキーマを迅速に生成し、手動入力の手間を省きます。現在、JSONXMLJSONスキーマMySQL DDLフォーマットをサポートしています。

img_v3_02ei_8f6f8751-c318-4635-ab47-0df9ad3a391g.jpg

JSONの例:

{
    "userInfo_get_response":{
        "result":{
            "model":{
                "open_id":"qwertyuiuduiasd",
                "avatar":"avatar url",
                "nick":"snsNick"
            },
            "err_message":"err_message",
            "err_code":"err_code",
            "success":false
        }
    }
}
img_v3_02ei_aafba5c1-c9fe-4cf7-9abb-df2226375a2g.jpg

XMLの例:

<error_response>
    <code>50</code>
    <msg>Remote service error</msg>
    <sub_code>isv.invalid-parameter</sub_code>
    <sub_msg>Illegal parameter</sub_msg>
</error_response>
img_v3_02ei_e6698c69-78c3-494a-a9f5-b23c25df550g.jpg

JSONスキーマの例:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Person Schema",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the person.",
      "minLength": 2
    },
    "age": {
      "description": "Age in years which must be equal to or greater than zero.",
      "type": "integer",
      "minimum": 0
    },
    "email": {
      "type": "string",
      "description": "The email address of the person.",
      "format": "email"
    }
  },
  "required": ["name", "age", "email"]
}
img_v3_02ei_75d86cef-3947-4bf1-9737-9fd3c0d075ag.jpg

MySQL DDLの例:

CREATE TABLE orders (  
    order_id INT AUTO_INCREMENT PRIMARY KEY,  
    customer_id INT NOT NULL,  
    order_date DATE NOT NULL,  
    total_amount DECIMAL(10, 2) NOT NULL,  
    status VARCHAR(50) NOT NULL,  
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id)  
);
img_v3_02ei_99506897-6d5b-4b4e-9f33-d404a3ecfd0g.jpg

高度なフィールド設定

フィールド要件やnull可能性などの基本設定を超え、特定のフィールドタイプは高度な設定をサポートしており、ソースコードを直接編集することも可能です。例えば、配列は定義された項目数のプロパティを持つことができます。

image.png

文字列:

img_v3_02ei_d2885a7e-bc30-4c3c-9376-85dc976d84cg.jpg

数値:

img_v3_02ei_43c45fdc-d951-49b7-8153-b4234a0b715g.jpg

配列:

img_v3_02ei_3c5fbcc8-d7c7-4ddf-804a-fd10d74a5d3g.jpg

オブジェクト:

img_v3_02ei_97027743-e893-410a-beb6-17a34d1b549g.jpg

ブール型:

img_v3_02ei_34ff465d-c4fd-4134-8db6-96efe43d0cdg.jpg

整数:

img_v3_02ei_b3573cf2-3656-4876-8ff6-a42ca2baa91g.jpg

OneOf, AnyOf, AllOf:

img_v3_02ei_0208bf24-a90e-4bea-8ea3-715f3f9c633g.jpg

スキーマの参照

子ノードを追加する際には、既に作成されたスキーマを素早く参照することができます。

img_v3_02ei_d6bd8018-ebb2-4be0-a0d5-e2abd8520dbg.jpg

プレビュー

img_v3_02ei_ffb4cb47-f95e-433b-bf60-ff17ad1231fg.jpg


img_v3_02ei_9d2a71c1-ec94-4b43-90fa-2187342d5b6g.jpg

生の編集

JSONスキーマのソースコードを直接編集することで、データ構造を設計します。

img_v3_02ei_4812637b-fe20-4c44-9082-d76f6cf993ag.jpg

結論

EchoAPIにスキーマを取り入れることで、データ構造の設計、検証、メンテナンスが簡素化されます。インテリジェントインポートや高度なフィールド設定を活用することで、アプリケーション全体でデータの一貫性と整合性を確保できます。スキーマ参照や生編集の機能を備えたEchoAPIは、柔軟性を提供し、スキーマ管理を効率的かつ効果的にします。これらのスキーマ活用方法をEchoAPIに取り入れることで、堅牢で柔軟なデータインタラクションを実現するAPI開発ワークフローを向上させましょう。