次の方法で共有


Data API ビルダーで構成ファイル環境を使用する

このガイドでは、構成ファイルを使用して開発環境をターゲットにする手順について説明します。 最終的な結果構成ファイルは、最小限の変更で将来運用データベース構成を追加できる十分な柔軟性を備える必要があります。

前提条件

SQL テーブルとデータのCreate

この例のシナリオで使用する架空のデータを含むテーブルをCreateします。

  1. 任意のクライアントまたはツールを使用して、SQL サーバーとデータベースに接続します。 たとえば、SQL Server Management StudioAzure Data StudioVisual Studio Code のSQL Server拡張機能などがありますが、これらに限定されません。

  2. と 列を使用して という名前Booksのテーブルをidname Createします。

    DROP TABLE IF EXISTS dbo.Books;
    
    CREATE TABLE dbo.Books
    (
        id int NOT NULL PRIMARY KEY,
        title nvarchar(1000) NOT NULL,
        [year] int null,
        [pages] int null
    );
    GO
    
  3. 4 つのサンプルブック行をテーブルに Books 挿入します。

    INSERT INTO dbo.Books VALUES
        (1000, 'Practical Azure SQL Database for Modern Developers', 2020, 326),
        (1001, 'SQL Server 2019 Revealed: Including Big Data Clusters and Machine Learning', 2019, 444),
        (1002, 'Azure SQL Revealed: A Guide to the Cloud for SQL Server Professionals', 2020, 528),
        (1003, 'SQL Server 2022 Revealed: A Hybrid Data Platform Powered by Security, Performance, and Availability', 2022, 506)
    GO
    
  4. 単純な SELECT * クエリを使用してデータをテストします。

    SELECT * FROM dbo.Books
    

基本構成ファイルCreateする

DAB CLI を使用してベースライン構成ファイルをCreateします。

  1. を使用して、一般的な構成ファイルをCreatedab initします。

    dab init --database-type "mssql" --host-mode "Development"
    
  2. を使用して Book エンティティを dab add追加します。

    dab add Book --source "dbo.Books" --permissions "anonymous:*"
    
  3. 現在の dab-config.json 構成ファイルを確認します。 ファイルには、1 つのエンティティ、REST API エンドポイント、GraphQL エンドポイントを使用した API のベースライン実装が含まれている必要があります。

    {
      "$schema": "https://github.com/Azure/data-api-builder/releases/download/v0.10.23/dab.draft.schema.json",
      "data-source": {
        "database-type": "mssql",
        "connection-string": "",
        "options": {
          "set-session-context": false
        }
      },
      "runtime": {
        "rest": {
          "enabled": true,
          "path": "/api",
          "request-body-strict": true
        },
        "graphql": {
          "enabled": true,
          "path": "/graphql",
          "allow-introspection": true
        },
        "host": {
          "cors": {
            "origins": [],
            "allow-credentials": false
          },
          "authentication": {
            "provider": "StaticWebApps"
          },
          "mode": "development"
        }
      },
      "entities": {
        "Book": {
          "source": {
            "object": "dbo.Books",
            "type": "table"
          },
          "graphql": {
            "enabled": true,
            "type": {
              "singular": "Book",
              "plural": "Books"
            }
          },
          "rest": {
            "enabled": true
          },
          "permissions": [
            {
              "role": "anonymous",
              "actions": [
                {
                  "action": "*"
                }
              ]
            }
          ]
        }
      }
    }
    

環境変数ファイルのCreate

次に、DAB の環境変数を格納する環境ファイルを追加します。

  1. DAB CLI 構成ファイルと同じディレクトリに という名前.envのファイルをCreateします。

注意

.env ファイルなどの.gitignore.editorconfigファイル名にはファイル名がなく、ファイル拡張子のみが含まれます。 名前は大文字と小文字は区別されませんが、規則は小文字です。

  1. の値DevelopmentDAB_ENVIRONMENT持つ環境変数を追加します。 また、データベース 接続文字列で環境変数を追加SQL_DOCKER_CONNECTION_STRINGします。

    SQL_DOCKER_CONNECTION_STRING=<connection-string>
    DAB_ENVIRONMENT=Development
    

Create環境構成ファイル

最後に、現在の構成と目的の環境構成の間の差分を含む開発構成ファイルを追加します。

  1. dab-config.Development.json ファイルを作成します。 関数を使用して開発環境で値を @env() 設定するには、次のコンテンツを追加します connection-string

    {
      "$schema": "<https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json>",
      "data-source": {
        "database-type": "mssql",
        "connection-string": "@env('SQL_DOCKER_CONNECTION_STRING')"
      }
    }
    
  2. 変更を .envdab-config.json、dab-config に保存します。Development.json ファイル。

テストの設定

  1. を使用して dab start 、ツールが期待どおりに起動することを検証します。

    dab start
    
  2. ツールの出力には、実行中の API に移動するために使用するアドレスを含める必要があります。

          Successfully completed runtime initialization.
    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: <http://localhost:5000>
    info: Microsoft.Hosting.Lifetime[0]
    

    ヒント

    この例では、アプリケーションはポート 5000 で実行されていますlocalhost。 実行中のアプリケーションのアドレスとポートが異なる場合があります。

  3. まず、 に GET 要求 /api/Bookを発行して、API を手動で試します。

    ヒント

    この例では、URL は になります https://localhost:5000/api/Book。 この URL には、Web ブラウザーを使用して移動できます。

  4. 次に、 の Swagger ドキュメント ページに /swagger移動します。

    ヒント

    この例では、URL は になります <https://localhost:5000/swagger。 ここでも、Web ブラウザーを使用してこの URL に移動できます。

  5. 最後に、この操作に移動して実行して、GraphQL エンドポイントを/graphql試します。

    query {
      books(filter: {
        pages: {
          lt: 500
        }
      }) {
        items {
          id
          title
          year
          pages
        }
      }
    }
    

    ヒント

    この例では、URL は になります https://localhost:5000/graphql。 ここでも、Web ブラウザーを使用してこの URL に移動できます。