【徹底解説】Google Translate とのデータ連携ができるMVC アプリケーションの作り方

加藤龍彦
加藤龍彦
デジタルマーケティング
複雑な開発が必要なMVC アプリからGoogle Translate API とのデータ連携をノーコードで実現。接続→クエリ実行まで実装手順を詳細解説、API のアップデート追従も不要でWebアプリケーションの開発・保守を効率化できます。



この記事では、Visual Studio のウィザードを使って簡単なMVC(モデル・ビュー・コントローラ)プロジェクトを作成し、Entity Framework のメソッドを使うGoogle Translate にcreate, read, update, delete (CRUD) コマンドクエリを実行する方法を説明します。

Entity Framework Model の作成

下記の手順に従って接続プロパティを保存し、データモデルのエンティティにテーブルをマップします。

  1. Entity Framework 6 をお使いの場合は、あらかじめプロジェクトに Google Translate Entity Framework プロバイダーを登録してください。詳しくは、ヘルプドキュメントの「LINQ およびEntity Framework」をご参照ください。
  2. Visual Studio で新規MVC プロジェクトを作成[Internet Application]テンプレート、[Razor]ビューエンジンを選択します。この例では、プロジェクト名はMvcAPIApp です。
  3. デザイナーから.edmx ファイルを追加するには、[プロジェクト]>[新しい項目の追加]をクリックします。ADO.NET Entity Data Model を選択してモデルに名前を付けたら[追加]をクリックします。この例では、モデル名はAPIModel です。
  4. [Entity Data Model]ウィザードで、[EF Designer from database]オプションを選択します。[Entity Data Model]ウィザードが表示されます。
  5. [New Connection]をクリックします。ダイアログが表示されたらCData Google Translate のデータソースを選択します。
  6. 必要な接続文字列プロパティを指定します。

    認証

    Google Cloud Translation API では、翻訳サービス、データセット、用語集、適応型 MT リソースへの安全なアクセスを確保するために、OAuth 2.0 認証が必要です。この認証方式により、Google Cloud プロジェクトに安全に接続し、適切な認可のもとで翻訳リソースを管理できます。

    OAuth 2.0 のセットアップと設定

    ステップ 1:Google Cloud プロジェクトの作成と API の有効化

    OAuth 認証をセットアップするには、以下のステップで進めます:

    1. Google Cloud Console にアクセスします
    2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
    3. Project ID を控えておきます(すべての API 呼び出しで必要です)
    4. 「APIs & Services」 > 「Library」に移動します
    5. 「Cloud Translation API」を検索して有効化します
    6. 「APIs & Services」 > 「Credentials」に移動します
    7. 「Create Credentials」をクリックし、「OAuth Client ID」を選択します
    8. プロンプトが表示されたら OAuth 同意画面を設定します
    9. 用途に応じて「Desktop application」または「Web application」を選択します
    10. 承認済みリダイレクト URI(CallbackURL)を設定します
    11. 接続で使用する Client ID と Client Secret をコピーします

    必須の接続プロパティ

    • AuthScheme:OAuth に設定します(必須)
    • OAuthClientId:Google Cloud Console の Client ID(必須)
    • OAuthClientSecret:Google Cloud Console の Client Secret(必須)
    • CallbackURL:OAuth アプリケーションで指定したリダイレクト URI(必須)
    • InitiateOAuth:トークンを自動管理するには GETANDREFRESH に設定します(推奨)
    • ProjectId:Google Cloud のプロジェクト ID またはプロジェクト番号(クエリに必須)

    必須の OAuth スコープ

    Google Cloud Translation API プロファイルでは、以下の OAuth スコープが必要です:

    • https://www.googleapis.com/auth/cloud-translation - 翻訳、データセット、用語集、適応型 MT を含む Cloud Translation API リソースへのフルアクセス
  7. To add the .edmx file from the designer, right-click your Models folder and click Add New Item. Select ADO.NET Entity Data Model, name the model, and click Add. In this example, the name of the model is APIModel.
  8. In the Entity Data Model wizard, select the option 'EF Designer from database'. The Entity Data Model wizard is displayed.
  9. Click New Connection. Select CData Google Translate Data Source in the dialog that is displayed.
  10. Specify the required connection string properties. 一般的な接続文字列は次のとおりです。

    A typical connection string is below:

    Profile=C:\profiles\GoogleTranslate.apip;AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;CallbackUrl=your_callback_url;
  11. 接続に名前を付け、資格情報などのセンシティブ情報を接続文字列に含めるかどうかを選択します。簡略化のため、この例ではセンシティブ情報をWeb.config に保存しています。

    The completed connection step in the ADO.NET Entity Data Model wizard. (A QuickBooks connection is shown.)
  12. 必要なテーブルおよびビューを選択します。ここでは、SupportedLanguages をインポートしています。また、オブジェクト名を複数形に変換するオプションは、チェックをはずしています。[Finish]をクリックして.edmx ファイルを作成します。Tables to be imported into the .edmx file. (QuickBooks is shown.)
  13. プロジェクトをビルドして完成です。

コントローラーの作成およびメソッドとビューの生成

モデルの作成とプロジェクトのビルドが終わったら、以下の手順に従ってコントローラー、ビュー、および関連するCRUD メソッドを作成できます。 SupportedLanguages テーブルに許可されたすべてのアクションのビューは、[Views]フォルダ内のSupportedLanguages サブフォルダに.cshtml ファイルとして格納されます。

[ソリューション エクスプローラー]で[Controllers]フォルダを右クリックし、[追加]>[コントローラー]をクリックします。コントローラーにAPIController のような名前を付け、以下のオプションを設定します。

  • Template:次のオプションを選択します:'Controller with read/write actions, using Entity Framework'.
  • Model class:SupportedLanguages を選択。
  • Data context class:APIEntities を選択。
Creating a new Controller from an existing entity data model in the Add Controller dialog. (QuickBooks is shown.)

これで、プロジェクトを実行できます。[Index]ビューにアクセスするには、"API" をURL に追加します。

The Index view of the example MVC Web application. (QuickBooks is shown.)

一からコントローラーを作成

このセクションでは、ほんの数行のコードでCRUD コマンドクエリをインプリメントする方法について説明します。利用可能なウィザードは、各ステップで詳しく説明します。

このチュートリアルを始める前に、エンティティデータモデルを作成しておいてください。Google Translate へのコマンドを実行するために、コンテキストクラスのメソッドを使用していきます。[Entity Framework Data Model]ウィザードを使ってモデルを作成する方法については、前のセクションをご参照ください。 — これはモデルファーストアプローチです。 コードファーストアプローチの利用に関する詳細は、ヘルプドキュメントの「LINQ およびEntity Framework」をご参照ください。

  1. 次の例のAPIController のようにコントローラーを手動で作成するには、[ソリューション エクスプローラー]で[Controllers]フォルダを右クリックし、[追加]>[コントローラー]をクリックします。
  2. [Add Controller]ダイアログが表示されたら、[Template]メニューから'Controller with empty read/write actions' オプションを選択します。[Controller]フォルダ内にAPIController.cs が作成されます。
The Add Controller dialog with the selected template, Controller with empty read/write actions. (QuickBooks is shown.)

コンテキストの作成

以下のコードを追加し、コンテキストクラスをクラス変数としてインスタンスを生成します。この簡単な例では、コントローラーはコンテキストクラスのメソッドを直接呼び出してCRUD コマンドを実行します。

private APIEntities db = new APIEntities();

Google Translate のデータエンティティの取得

レコードのリストをビューに表示するには、Index メソッドを以下のように書き換えます。このコードは、コンテキストクラスのToList() メソッドを呼び出して、レコードテーブルを表示するビューを返します。デフォルトでは、Index メソッドは空のビューを返します。

public ActionResult Index() { return View(db.SupportedLanguages.ToList()); }

ビューを作成するには、Index メソッド内を右クリックし、[Add View]をクリックします。ウィザードが表示されたら新しいビューIndex.cshtml を作成します。作成されたビューは[Views]フォルダに格納されます。このビューをロードするには、.cshtml ファイルを右クリックして[View In Page Inspector]をクリックします。

[Add View]ダイアログでビューに名前を付け、以下のオプションを設定します:

  • Create a strongly typed view:このオプションを選択し、SupportedLanguages タイプのビューを作成。
  • Model class:SupportedLanguages エンティティ、SupportedLanguages を選択。
  • Scaffold template:[List]を選択。このメニューオプションは、エンティティを表示するHTML テーブルを生成します。
Settings for an Index view. (QuickBooks is shown.)

はじめる準備はできましたか?

API Driver で Google Translate のライブデータに接続

Google Translate に接続