Denoと開始によるServerlessなウェブAPI -パート2
5997 ワード
前のポストでは、私たちはHTMLでランダムな引用を表示するために、typescriptとdenoでただ一つのServerlessな関数を書きました.応答は圧倒的であり、今では人々は彼らのアプリケーションに統合できるAPIを要求している.
新しいルートの追加
私たちは、
アクションで表示するには、コマンドラインから
コードをインポート
DENOはサードパーティ製のコードをインポートするESモジュールを使用します.私は
ここでGISTを見ることができます.
https://gist.github.com/pchinjr/75027d05c5844d2f2364e1acbb2c8c37
For more info, the Deno docs have a helpful explanation about linking to third party code.
開始時にCI/CDで展開する
新しいAPIは、それが一般に利用可能になるとき、funcだけです.配備は、ちょうど1 ,
開発ツールがバックグラウンドにフェードし続けているので、新しいワークフローを試してみるのはエキサイティングな時期です.それは私たちのすべてに焦点を当て、我々のコアアプリケーションロジックで何が可能かを探ることができます.
/api
ルートを加えましょう!新しいルートの追加
私たちは、
app.arc
ファイルを変更することによって、私たちのAPIのための新しいルートを加えるつもりです.# app.arc
@app
your-app-name
@http
get /
get /api
次に、HTTP関数の新しいディレクトリとファイルを作成します.次のコードをsrc/http/get-api/index.ts
にコピーします.// src/http/get-api/index.ts
import { quote } from "https://gist.githubusercontent.com/pchinjr/75027d05c5844d2f2364e1acbb2c8c37/raw/2ff84587ba01d6d262125fe8c22c27d4b704a837/quote-zotic.js"
export async function handler (req: object) {
return {
statusCode: 200,
headers: {
'cache-control': 'no-cache, no-store, must-revalidate, max-age=0, s-maxage=0', 'content-type': 'application/json; charset=utf8'},
body: JSON.stringify( {data: quote() } )
}
}
また、デフォルトのノードから変更するための小さな設定ファイルを供給する必要があります.JSランタイムは、機能フォルダの.arc-config
ファイルでDENOに.# src/http/get-api/.arc-config
@aws
runtime deno
get-api
関数はquote()
から同じget-index
ロジックを使用していますが、今では私たちは、より多くの引用符から選択する必要があり、それは他のアプリケーションで消費できるJSONを返します.アクションで表示するには、コマンドラインから
npm start
を実行し、http://localhost:3333/apiに移動しますコードをインポート
DENOはサードパーティ製のコードをインポートするESモジュールを使用します.私は
quote()
の機能からget-index
ロジックをとって、GitHub Gistでそれを主催することによってこの機能を試してみたかったです.ここでGISTを見ることができます.
https://gist.github.com/pchinjr/75027d05c5844d2f2364e1acbb2c8c37
// gist.js
export function quote() {
let quotes = ['first quote', 'second quote', 'third']
let min = 0
let max = quotes.length - 1
let rando = ~~(Math.random() * (max-min) + min)
return quotes[rando]
}
この種のインポートを使用すると、集中パッケージマネージャなしで依存関係をより制御できます.任意の余分なツールなしでプライベートパッケージのレジストリを作成することができます.このような変更をすれば、私はインポートするコードについてもっと意図的に考えるようになります.For more info, the Deno docs have a helpful explanation about linking to third party code.
開始時にCI/CDで展開する
新しいAPIは、それが一般に利用可能になるとき、funcだけです.配備は、ちょうど1 ,
git push
.あなたのデフォルト支店への各々のプッシュは、staging
に新しい配備を開始します.先に行くと私たちと共有することによってそれを披露.開発ツールがバックグラウンドにフェードし続けているので、新しいワークフローを試してみるのはエキサイティングな時期です.それは私たちのすべてに焦点を当て、我々のコアアプリケーションロジックで何が可能かを探ることができます.
Reference
この問題について(Denoと開始によるServerlessなウェブAPI -パート2), 我々は、より多くの情報をここで見つけました https://dev.to/pchinjr/serverless-web-api-with-deno-and-begin-part-2-5fjgテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol