2022年10月12日水曜日

[typescript,WebAPI,サンプルコード]DeepLのWebAPIを呼び出すTypeScriptのサンプルコード

import fetch from "node-fetch";

// DeepL WebAPI URL
const URL_API = "https://api-free.deepl.com/v2/translate?auth_key=";

//DeepLのAPIキーを設定 ※各自のAPIキーで書き換え
const apiKey = "xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx:fx";

// 翻訳対象言語
enum TARGET_LANG {
  Ja = "JA", // 日本語に翻訳
  En = "EN", // 英語に翻訳
}

// DeepLのWepAPIにRESTで翻訳依頼する
const executeTranslation = async (
  targetText: string,
  targetLang: TARGET_LANG
) => {
  //APIリクエストのGET時に必要なパラメータを設定
  const requestUrl =
    URL_API + apiKey + "&text=" + targetText + "&target_lang=" + targetLang;
  const response = await fetch(requestUrl);
  console.log("response", response);
  const json = await response.json();
  console.log("json", json);
  return json;
};

// WebAPIの返り値(JSON)をこっち側のクラスに変換する変換するためのType
type Translation = {
  detected_source_language: string;
  text: string;
};
type TranslationResult = {
  translations: Translation[];
};

const main = async () => {
  const result: TranslationResult = await executeTranslation(
    "This is translation test.",
    TARGET_LANG.Ja
  );
  console.log("英語から日本語への翻訳:result", result);
  console.log(
    "英語から日本語への翻訳:detected_source_language",
    result.translations[0].detected_source_language
  );
  console.log("英語から日本語への翻訳:text", result.translations[0].text);

  const result2: TranslationResult = await executeTranslation(
    "これは翻訳テストです。",
    TARGET_LANG.En
  );
  console.log("日本語から英語への翻訳:result", result2);
  console.log(
    "日本語から英語への翻訳:detected_source_language",
    result2.translations[0].detected_source_language
  );
  console.log("日本語から英語への翻訳:text", result2.translations[0].text);
};

main();


0 件のコメント: