hapi.jsは、インテリジェントなデフォルトでJSON API開発を簡素化します。 そのモジュラーアーキテクチャとプラグインエコシステムは、シームレスな拡張機能とカスタマイズを可能にします。 バージョン17.0は、async
/await
を完全に統合し、同期コードの読みやすさを非同期操作の非ブロッキング効率を提供し、コールバックの複雑さを排除します。
主要な機能:
async
多様なコンテンツタイプやHTTPメソッドを含む詳細なルート処理をサポートします。プラグインを介してさらにカスタマイズ可能です。
await
httpieを使用したREST APIテスト。
JWT認証とルートセキュリティ。JOIによるデータの検証
ルートルートのHTMLビューとレイアウト(/
ルートハンドラーは極めて重要です。 Hapiの応答処理は柔軟です:
Content-Type: application/json
文字列はhtml(Content-Type: text/html
約束とストリームもサポートされています
モデルレイヤー(sqlite&secelize):async
hapiの柔軟性はモデル層にまで及びます。データベースとORMを自由に選択できます。 このチュートリアルでは、sqliteを使用して、後遺症:
ファイルは
モデルを定義し、データベース接続を確立します。git clone https://github.com/markbrown4/hapi-api.git cd hapi-api npm install
models.js
安らかなアクション:Article
Article.sync()
ファイルは、記事管理(CRUD)のルートを定義します。 これらのルートは、データベースのインタラクションに続編メソッド(、、
、、routes.js
)を利用しています。
findAll
findById
httpieを使用したAPIテスト:create
update
destroy
httpieは、コマンドラインからのAPIテストを簡素化します。
、、などのコマンドは、APIエンドポイントとの対話に使用されます。
エラー処理:http GET
http POST
http PUT
チュートリアルでは、http DELETE
を使用して標準化されたエラー応答を生成する堅牢なエラー処理を示しています(たとえば、404は見つかりません)。 レコードが見つからないケースを処理するために、カスタム
認証(jwt):
Boom
JWT認証は、find
プラグインを使用して実装されます(HAPI 17.0と互換性のあるフォークが使用されます)。 ログインルートはJWTSを生成し、ルートはデフォルトで保護されており、公開(
検証(JOI):
JOIは入力検証に使用され、データの整合性を確保します。 検証ルールは、ルート構成内で定義されています
hapi-auth-jwt2
config: { auth: false }
静的コンテンツとビューのサービング:
チュートリアルでは、静的コンテンツ(HTML)の提供方法を示し、ビューとレイアウトを処理するためのアプローチを提案します。 CORS構成については、クロスオリジンリクエストについても説明します
よくある質問(FAQ):
この記事は、差別化要因、開始、データベースの互換性、スケーラビリティ、セキュリティ、モバイルアプリの統合、コミュニティサポート、貢献ガイドライン、一般的なユースケース、エラーなど、hapi.js開発のさまざまな側面に対処する包括的なFAQセクションで締めくくります。取り扱い。
以上がhapi.jsフレームワークを使用したアプリとサービスの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。