単純なFastify APIをtypescriptで作成し、それを展開する
18058 ワード
このチュートリアルでは、FastifyとTypesScriptでシンプルなAPIを構築する方法と、ScaleDynamicsプラットフォームに配置する方法を参照してください.
Fastify がノードです.HTTP APIを構築するためのJS Webフレームワーク.これは、使いやすく、高速にするように設計されます.それはExpressとHAPIに触発さ強力なプラグインアーキテクチャを持っています.それは、パフォーマンスを犠牲にすることなく念頭に置いて開発経験を持つデザインです.
私たちの目標は、いくつかのユーザーからフェッチされるユーザーを返すtypescriptとfastify APIのための簡単な出発点を構築することですjsonplaceholder . 次に、任意のアプリケーションから使用できるように、ScaleDynamicsプラットフォームに配備します.
続くためには、 ノード.JSと糸/NPMはインストールされます.行けますhere ノードの最新バージョンをダウンロードします.JSとNPM いくつかの基本TypeScript 知識
フォルダを作成し、NPMを初期化しましょう.
クリエイトア
の定義を追加する必要があります
パーフェクト!では、ScaleDynamicsプラットフォームにAPIを配備しましょう.
ScaleDynamicsの雲にこのアプリケーションを展開するには、アカウントが必要ですし、リソースを使用して環境を作成します.クラウドリソースは、仮想CPUとアプリケーションを実行するために使用されるストレージ容量を提供します.このチュートリアルでは、ScaleDynamicsのクラウドで利用できる無料の共有リソースを使用します.これらはテストに最適です.このチュートリアルでは、パブリッククラウドプロバイダとお好みの地域の専用生産リソースにアップグレードする方法を後で参照してください.
あなたがアカウントを持っていない場合は、1つを作成する自由here (無料ですし、クレジットカードは必要ありません).アカウントが作成されたら、ログインしてください.
ScaleDynamicsの上でプロジェクトと環境をつくりましょうconsole . 組織を選択し、新しいプロジェクトを作成し、新しい環境を作成します.今、我々は我々の展開に必要なサービスを選択する必要があります.4種類あります. 管理HTTP Docker 管理ノード.jsサーバー 管理ノード.JSモジュール 静的資産ホスティング APIにはサーバが必要です.管理されたノードを選びましょう.jsサーバー.あなたは、他のタイプでより多くを学ぶことができますScaleDynamics documentation .
環境は、アプリケーションを実行する準備が整いました.
まず、SDKにどのようなアプリケーションを展開したいのかを設定する設定を加えましょう.プロジェクトのルートで
TypeScriptスクリプトをJavaScriptにコンパイルするプロジェクトを構築します
アカウントにログインし、プロンプトを介して組織を選択します
最後に、展開コマンドを実行できます.
サーバーが設定ファイルから検出されたことがわかります.プロンプトに従って、作成したプロジェクトを選択し、環境を選択します.プロンプトはまた、ホスト名を求める場合は、ランダムな名前の空白を残すことができますかを使用します.最後に、ホストを選択できます.
展開数分かかります.
それが完了したら、あなたのブラウザを開くことができますし、URLとタダに行く!あなたのAPIはライブです!
専用リソースを使用する場合は、非共有リソースに動的にアップグレードできます.下に示すようにいくつかのマウスクリックとして簡単です.
この段階では、完全に機能的なAPIを持っています.あなたはScaleDynamicsの詳細を学ぶことができますdocumentation , サーバーのログを取得する方法と同様に、カスタムドメインを使用し、CI/CDパイプラインなどを実装します.
楽しむ!
導入
Fastify がノードです.HTTP APIを構築するためのJS Webフレームワーク.これは、使いやすく、高速にするように設計されます.それはExpressとHAPIに触発さ強力なプラグインアーキテクチャを持っています.それは、パフォーマンスを犠牲にすることなく念頭に置いて開発経験を持つデザインです.
ゴール
私たちの目標は、いくつかのユーザーからフェッチされるユーザーを返すtypescriptとfastify APIのための簡単な出発点を構築することですjsonplaceholder . 次に、任意のアプリケーションから使用できるように、ScaleDynamicsプラットフォームに配備します.
必要条件
続くためには、
プロジェクトのセットアップ
フォルダを作成し、NPMを初期化しましょう.
mkdir fastify-api
yarn init
プロンプトでオプションを気にしないでください、あなたは直接あなたのこのコードを使用することができますpackage.json
ファイル{
"name": "fastify",
"version": "1.0.0",
"main": "src/index.ts",
"license": "MIT",
"scripts": {
"build": "tsc -p tsconfig.json",
"start": "node ./dist/index.js"
},
"dependencies": {
"@types/node": "^17.0.23",
"axios": "^0.26.1",
"fastify": "^3.28.0"
},
"devDependencies": {
"typescript": "^4.6.3"
}
}
依存関係をインストールするyarn
今、我々はAを作成する必要がありますtsconfig.json
TypeScriptを設定するには、次のように実行します.npx tsc --init
私たちは今それを変更する必要があります.{
"compilerOptions": {
"target": "esnext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
"module": "commonjs" /* Specify what module code is generated. */,
"outDir": "./dist" /* Specify an output folder for all emitted files. */,
"esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */,
"forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
"strict": true /* Enable all strict type-checking options. */
}
}
プロジェクトは現在、準備ができています.ビルドAPI
クリエイトア
src
プロジェクトのルートでフォルダを作成し、index.ts
ファイルの内部:import axios from "axios";
import fastify from "fastify";
const server = fastify();
server.get("/users", async (): Promise<User[]> => {
return (await axios.get("https://jsonplaceholder.typicode.com/users")).data;
});
server.listen(8080, (err, address) => {
if (err) {
console.error(err);
process.exit(1);
}
console.log(`Server listening at ${address}`);
});
我々のAPIは単にjsonplaceholder 我々が呼ぶとき/users
.の定義を追加する必要があります
User
タイプを作成するdomain
フォルダとuser.d.ts
ファイル内部:type User = {
id: number;
name: string;
username: string;
email: string;
address: Address;
phone: string;
website: string;
company: Company;
};
type Address = {
street: string;
suite: string;
city: string;
zipcode: string;
geo: Geolocalisation;
};
type Geolocalisation = {
lat: string;
lng: string;
};
type Company = {
name: string;
catchPhrase: string;
bs: string;
};
JavaScriptに変換して実行するには、次のコードを構築できます.yarn build
yarn start
実行してユーザーを取得します.curl localhost:8080/users
次のようにユーザーをダンプする必要があります.パーフェクト!では、ScaleDynamicsプラットフォームにAPIを配備しましょう.
アカウントの作成とリソースの選択
ScaleDynamicsの雲にこのアプリケーションを展開するには、アカウントが必要ですし、リソースを使用して環境を作成します.クラウドリソースは、仮想CPUとアプリケーションを実行するために使用されるストレージ容量を提供します.このチュートリアルでは、ScaleDynamicsのクラウドで利用できる無料の共有リソースを使用します.これらはテストに最適です.このチュートリアルでは、パブリッククラウドプロバイダとお好みの地域の専用生産リソースにアップグレードする方法を後で参照してください.
あなたがアカウントを持っていない場合は、1つを作成する自由here (無料ですし、クレジットカードは必要ありません).アカウントが作成されたら、ログインしてください.
ScaleDynamicsの上でプロジェクトと環境をつくりましょうconsole . 組織を選択し、新しいプロジェクトを作成し、新しい環境を作成します.今、我々は我々の展開に必要なサービスを選択する必要があります.4種類あります.
展開
環境は、アプリケーションを実行する準備が整いました.
設定ファイル
まず、SDKにどのようなアプリケーションを展開したいのかを設定する設定を加えましょう.プロジェクトのルートで
warp.config.js
ファイル// warp.config.js
module.exports = {
server: "fastify",
};
ビルド
TypeScriptスクリプトをJavaScriptにコンパイルするプロジェクトを構築します
yarn build
ログイン
アカウントにログインし、プロンプトを介して組織を選択します
npx warp login
配備する
最後に、展開コマンドを実行できます.
npx warp deploy ./
このコマンドは以下のようにダンプします:サーバーが設定ファイルから検出されたことがわかります.プロンプトに従って、作成したプロジェクトを選択し、環境を選択します.プロンプトはまた、ホスト名を求める場合は、ランダムな名前の空白を残すことができますかを使用します.最後に、ホストを選択できます.
展開数分かかります.
それが完了したら、あなたのブラウザを開くことができますし、URLとタダに行く!あなたのAPIはライブです!
さらに進んでください:専用の資源
専用リソースを使用する場合は、非共有リソースに動的にアップグレードできます.下に示すようにいくつかのマウスクリックとして簡単です.
次の手順
この段階では、完全に機能的なAPIを持っています.あなたはScaleDynamicsの詳細を学ぶことができますdocumentation , サーバーのログを取得する方法と同様に、カスタムドメインを使用し、CI/CDパイプラインなどを実装します.
楽しむ!
Reference
この問題について(単純なFastify APIをtypescriptで作成し、それを展開する), 我々は、より多くの情報をここで見つけました https://dev.to/scaledynamics/make-a-simple-fastify-api-with-typescript-and-deploy-it-3fomテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol