Feathers.jsの初心者向けガイド
feathers.js:RESTFUL APIサーバーをすばやく構築するためのガイド
コアポイント:
- Feathers.jsは、Restful APIサーバーの作成を簡素化し、ほとんどの繰り返しバックエンド作業を処理し、開発者がコードのカスタマイズと構成に集中できるようにします。 このフレームワークは、Expressに基づいて構築され、SQLおよびNOSQLデータベースをサポートし、必要なコードを自動的に生成するサービスを使用して、CRUD操作を簡単に実行できるようにします。
-
Feathers.jsでの
認証は、JSON Web Tokens(JWT)を使用してAPIエンドポイントを保護し、認定ユーザーのみがデータにアクセスまたは変更できるようにすることができます。
Feathers.jsのフックは、データがデータベースに到達する前または後にデータを操作するミドルウェア関数として機能します。これは、検証、承認、動的なフィールドの追加などのタスクに非常に役立ちます。 - Feathers.jsは、使いやすく拡張できるように設計されており、WebSocketsを介したリアルタイムの更新をサポートし、さまざまなフロントエンドフレームワークに柔軟なアーキテクチャを提供します。
- この記事では、feathers.jsを使用してnode.jsでRESTFUL APIサーバーを構築するように導きます。
- Application Serverとも呼ばれるAPIサーバーは、フロントエンドアプリケーションにデータを提供するプログラムです。また、バックエンドでビジネスロジックを処理し、組織のデータベースへの制限されたアクセスを提供します。許可されていない人々がデータにアクセスすることを妨げるだけでなく、ユーザーにログインしている場合、データを制限したり、データを変更したりできます。
上記の画像に示すように、アプリケーションサーバーのジョブは、SQLまたはNOSQLコマンドを使用してデータベースからデータにアクセスし、JSONなどのフロントエンドアプリケーション(クライアントブラウザー)が理解できる形式に変換することです。 。さらに、アプリケーションサーバーは、HTTPS暗号化やトークン認証など、さまざまなセキュリティプロトコルを使用して、データベースとクライアントアプリケーション間の通信が安全で信頼性が高いことを確認できます。このアーキテクチャを使用する主な利点の1つは、同じアプリケーションサーバーを使用して、DeskTop、モバイル、Webなどのさまざまなプラットフォームのアプリケーションを展開できることです。さらに、より多くのユーザーにサービスを効率的に提供し、応答時間を速くするために、アプリケーションを水平方向に拡張することも簡単です。
シンプルなAPIサーバーを構築し、Feathersが提供するさまざまな機能を実証します。
前提条件:
このチュートリアルを開始する前に、次のトピックについて強固な基盤が必要です。
- es6 javascript
- Expressアプリケーションを作成
- express
- を使用してRESTFUL APIを作成します
プロジェクトの作成:
羽の使用を開始するには、コマンドラインアプリケーションをグローバルにインストールする必要があります。次に、次のコマンドを使用して新しいAPIプロジェクトを作成します。
npm install -g @feathersjs/cli
以下は私の選択です。好きなテストフレームワークを選択できます。残念ながら、このテストはこの記事の焦点の範囲内ではないため、ここではカバーされません。私は個人的にシンプルさが好きなので、冗談を選んだのです。
mkdir contacts-api cd contacts-api feathers generate app
インストールが完了したら、お気に入りのコードエディターを開いてプロジェクトファイルを表示できます。
前提条件セクションにリストしたExpressチュートリアルを完了した場合、生成されたコードは怖がらないはずです。これは、フォルダーとファイルを説明する短い要約です。
各ファイルの役割についてあまり心配しないでください。このチュートリアルを調べると、それらがどのように機能するかについて詳しく知ります。次に、テストが適切に機能していることを確認しましょう。
コードスタイルのチェック(糸くず):
私たちのプロジェクトが定義されたESLINTルールに準拠していることを確認するには、コマンドを実行するだけです。 UNIXプラットフォームまたはLinuxプラットフォームを使用している場合、これは正常に動作するはずです。 Windowsを使用している場合は、テストを正常に実行するために何かを調整する必要があります。
最初に、npm test
に移動し、
行を次のように変更します
package.json
scripts
次に、Visual Studioコードにきれいなインストールがある場合は、ワークスペース設定で単一の引用設定をtrueに変更する必要があります。
test
"scripts": { "test": "npm run eslint && SET NODE_ENV= npm run jest", },
Crud Restfulインターフェイスを生成する方法を見てみましょう。
{ "prettier.singleQuote": true }
サービスの生成:
ExpressにRESTFUL CRUD APIインターフェイスを構築するには、いくつかの作業が必要です。羽毛では、単一のコマンドを実行していくつかの質問に答えるだけでコードを生成できます。
このチュートリアルでは、NEDBデータベースを使用します。 Feathersは、SQLデータベース(MySQLなど)およびNOSQLデータベース(MongoDBなど)をサポートしています。ただし、マシン上でもクラウドサーバー上にデータベースシステムをインストールすると、構成に時間がかかります。一方、NEDBは、MongoDB APIのサブセットをサポートするJavaScriptで完全に記述されたインメモリデータベースです。設定は必要ありません。プロトタイプ化や新しいアプリケーションのテストに最適です。これは、このチュートリアルで使用するデータベースです。npm install -g @feathersjs/cli
このコマンドを使用して生成されたファイルの一部を簡単に見てみましょう。
。これは、- のCRUD APIエンドポイントを提供するFeathersサービスです。とても小さいですね。これは、羽が私たちのために重い持ち上げをしたからです。これにより、ボイラープレートのCRUDコードを書くことから救われます。
-
services/contacts/contact.service.js
/contacts
。ここでは、CRUDロジックの動作をカスタマイズします。羽毛がデータベースを読み取るか書き留める前に、データをチェックまたは変更できる セクションがあります。また、クライアントアプリケーションに送信する前に、データベースの結果をチェックまたは変更できる - セクションもあります。アクセスの制限、データ検証、結合操作の実行、追加のフィールドまたは列の値の計算などの操作を実行できます。
services/contacts/contact.hooks.js
before
after
。ここでは、モデルを定義し、データベーステーブルに追加します。これは、新しいレコードが挿入または更新されたときにフィールドを検証するために使用できるパターンを定義する場所でもあります。残念ながら、NEDBはモードをサポートしていません。ただし、Mongooseアダプターを介してモード機能をサポートするMongoDBに接続されたモデルの例を提供しました。 -
NEDBにはいくつかの制限にもかかわらず、それはまだプロトタイピングに非常に適したデータベースです。ほとんどのNOSQLデータベースを使用すると、最初にスキーマを定義せずに構造を使用してデータを送信できます。プロジェクトの要件を実装した後、モデルを実装するのが最善です。パターンを使用すると、Feathersは定義したルールを使用してフィールド検証を実行します。スキーマを定義するには、生産対応のデータベース(MongoDBなど)が必要です。開発データベースの構成定義は
models/contacts.model.js
: にあることに注意してください。
mkdir contacts-api cd contacts-api feathers generate app
があります。これは、Feathersアプリケーションを展開するときに使用される生産データベース構成です。開発中に別のデータベースを使用することが重要です。それ以外の場合、本番データベースでビジネス運用データを削除または損傷するリスクがあります。 config/default.json
連絡先のCRUDサービスをセットアップしたので、今度は試してみる時が来ました。コマンドを使用してfeatherサーバーを起動できます。このサーバーはホットリロードをサポートしていないことに注意してください。したがって、コードを変更するたびに再起動する必要があります。 Feathersアプリケーションと対話するには、郵便配達や不眠症などのAPIブラウザツールが必要です。このチュートリアルでは、不眠症を使用しますが、郵便配達員やその他のツールで簡単に実行できます。 npm start
ctrl n)を作成し、「リスト連絡先」と名付けます。 URLセクションで、を入力します。 [送信]ボタンをクリックすると、次のビューが表示されます。
http://localhost:3030/contacts
何も!現在、データベースが空であるため、新しい連絡先を作成する必要があります。 Create Contactという新しいリクエストを作成します。次のように残りのフィールドに入力します:
上記のフォームのメソッドを変更するのを忘れている場合は、後で変更できます。メソッドを変更して、[ボディ]タブをJSONに投稿して変更します。次のデータをJSONタブにコピーします:
[送信]ボタンをクリックすると、次の応答を受信する必要があります。新しい連絡先のために
npm install -g @feathersjs/cli
_id
「連絡先のリスト」に戻り、[送信]ボタンをもう一度クリックします。次の結果を取得する必要があります
「連絡先の作成」に戻り、いくつかの新しいレコードを公開してください:
mkdir contacts-api cd contacts-api feathers generate app
今すぐ更新操作を実行しましょう。この目的のために、更新HTTPメソッドは使用しません。この方法は、レコードを完全に上書きします。私たちがしたいのは、レコード全体ではなく、単一のフィールドを上書きすることだけです。これを行うには、パッチを使用します。以下に示すように、新しいリクエスト、「連絡先の更新」を作成します。
"scripts": { "test": "npm run eslint && SET NODE_ENV= npm run jest", },
{ "prettier.singleQuote": true }
URLフィールドに
を入力します。最初のレコードのIDにを置き換えます。次のデータをJSONタブに貼り付けます:
http://localhost:3030/contacts/{_id}
[送信]ボタンをクリックします。次の結果を確認する必要があります
{_id}
feathers generate service
残りのフィールドは変更されていないことに注意してください。次に、レコードを削除します。簡単です。新しい削除リクエストを作成し、「連絡先を削除」という名前を付けます。 URLフィールドでは、フォーマットhttp://localhost:3030/contacts/{_id}
を使用します。前と同じように、{_id}
を削除するレコードのIDに置き換えます。 「送信」をクリックすると、レコードが削除されます。リスト連絡先のリクエストを再度実行することで確認できます。
すべてのCRUD操作が適切に実行されていることを確認しました。次のセクションでは、認証をセットアップする方法を学びます。
(以下のコンテンツは元のテキストに似ていますが、読みやすさと流encyさを改善し、元の意図を変更しないようにするために、いくつかのステートメントの調整と段落合併が行われました。画像形式は変わらないままです。)
認証:
現在、/contacts
APIエンドポイントは保護されていません。アプリケーションをクラウドサーバーに展開すると、URLを持っている人なら誰でもレコードにアクセスして操作できます。アクセスを制限するには、認証をセットアップする必要があります。 JSON Webトークンを使用して、APIアプリケーションの認証を実装します。次のコマンドを実行して設定します
npm install -g @feathersjs/cli
次のオプションを選択します。
次に、新しいユーザーを作成する必要があります。これは、不眠症または他のAPIブラウザツールを使用して行うことができます。新しいリクエストを作成し、「ユーザーの作成」という名前を付けます。
jsonタブで、次のデータを送信します:
mkdir contacts-api cd contacts-api feathers generate app
ユーザーができました。新しいリクエスト「リストユーザー」を作成し、URL
を送信することにより、これを確認しましょう。残念ながら、次の回答を受け取りますこのデータにアクセスするには認証する必要があります。ログインに使用できるフロントエンドアプリケーションがないため、APIブラウザーの使用を継続します。新しいリクエストを作成し、「JWTトークンを取得」という名前を付けます。次のようにフォームに記入してください:http://localhost:3030/users
送信ボタンをクリックした後、次の応答を受信する必要があります。
トークンコードをコピーします(二重引用符なし)。リストユーザー要求ページに移動し、[Authタブ]タブを選択し、[BEARER]を選択します。このトークンコードをトークンフィールドに貼り付けます。
"scripts": { "test": "npm run eslint && SET NODE_ENV= npm run jest", },
URLエンドポイントを持つ人なら誰でも、新しいアカウントを作成してシステムにアクセスできます。新しいアカウントの不正な作成を防ぐには、このエンドポイントを制限する必要もあります。ファイルを開き、
を更新し、次のコードスニペットを更新します。これにより、認証されたユーザーのみが新しいアカウントを作成できるようになります。次のステップは、/contacts
エンドポイントを保護することです。ファイルを開き、それに応じて更新するだけです:services/contacts/contacts.hooks.js
認証するには、以前のようにベアラートークンをセットアップする必要があります。これを行ったら、リクエストを送信でき、連絡先リストを受け取る必要があります。以前に入手したトークンは1日で期限切れになることに注意してください。効率のために、環境変数を使用して、すべてのAPI要求パラメーターを一度に簡単に更新できるようにすることをお勧めします。フロントエンドアプリケーションを構築するときは、このトークンをローカルストレージに保存する必要があります。 Cookieを使用しないでください。それ以外の場合、アプリケーションはCSRF攻撃に対して脆弱になります。あなたが知っておくべき他のセキュリティリスクについては、Feathersセキュリティドキュメントをチェックしてください。
認証をセットアップしたので、後で作成された新しいサービスは、新しいエンドポイントを保護するオプションを提供します。次のセクションのこのチュートリアルの最後のトピックをチェックしてみましょう。
フック:フックは、エラーが発生した前、後、またはエラーが発生した場合、サービス方法に添付されたミドルウェア関数です。多くの場合、ロギングの処理、アクセスの制限、フィールドの保護、関連エンティティの充填、通知の送信などに使用されます。
を見ると、組み込みの羽毛フックが使用されていることがわかります。独自のカスタムフックを作成します。まず、サーバーを停止し、データベーステーブルを削除します。次に、次のコマンドを使用して新しいフックを生成します。
services/users/users.hooks.js
data/contacts.db
次のオプションを使用してカスタムフックを作成します
npm install -g @feathersjs/cli
process-contact
:現在ログインしているユーザーにリンクして
-
createdBy
_id
-
createdOn
hooks/process-contact.js
populate-user
:作成日を追加
hooks/populate-user
ファイルを開き、次のようにファイルを更新します。
を作成します。以下のスクリーンショットの指示に従ってください:
ファイルを開き、次のコードを挿入します これで、サーバーを起動できます。 CREATE CONTACTIONリクエストを使用して、3つの連絡先を再度作成します。ベアラートークンをセットアップしていない場合は、設定してください。それ以外の場合は、承認エラーを受け取ります。これは、新しい連絡先を作成するときに取得する必要がある応答のタイプです。
概要:独自のRestful APIサーバーをすばやく構築する方法を学んだことを願っています。私たちは基本に触れただけで、完全なガイドを読んで、羽が最小限の努力で高度な機能を達成するのに役立つより多くの機能を発見する必要があります。また、多くのリソースを含むAwesome Feathersページをチェックする必要があります。プラグイン、プロジェクトの例、またはチュートリアルが必要な場合でも、そこにリンクを見つけることができます。また、羽の拡張バージョンである羽毛CLIをチェックする必要があります。シードのコードを生成したり、GraphQLサポートをサポートしたりするなど、CLIが既に提供しているものに加えて、新しい機能を追加します。
contacts-api
プロジェクトをさらに改善する場合は、選択したフレームワークを使用して新しいフロントエンドアプリケーションを作成することをお勧めします。ログイン画面とCRUDページをビルドして、エンドポイントの/contacts
および/users
ページを作成します。課題を実装する楽しみをお楽しみください。
feathers.jsについてよく尋ねる質問:
-
feathers.jsとは何ですか? feathers.jsは、リアルタイムアプリケーションを構築するためのWebフレームワークです。軽量で柔軟で使いやすいように設計されており、スケーラブルで保守可能なサーバー側のアプリケーションを構築するためのツールとパターンのスイートを提供します。
-
feathers.jsによってサポートされているプログラミング言語は何ですか? feathers.jsは、主にサーバーとクライアント側でJavaScriptを使用します。サーバー上のnode.jsで使用でき、React、Angular、Vue.jsなどのフレームワークなど、クライアント上のさまざまなJavaScriptフレームワークをサポートできます。
-
feathers.jsの重要な機能は何ですか? feathers.jsには、リアルタイム機能(WebSocketおよびRESTFUL APIを介して)、サービス指向のアーキテクチャ、さまざまなデータベース(MongoDB、PostgreSQLなど)のサポート、認証および承認メカニズム、および拡張用のプラグインシステムが含まれます。
-
feathers.jsはリアルタイム通信をどのように処理しますか? Feathers.jsは、WebSocketの関数を使用してリアルタイム通信を実現します。これは、サーバー上のデータが変更されたときにクライアントがリアルタイムの更新を受信できるようにするために、ボックスからリアルタイムAPIを提供します。
-
サーバーサイドレンダリング(SSR)にfeathers.jsを使用できますか? feathers.jsは主にAPIおよびリアルタイムアプリケーションの構築に使用されますが、next.jsやnuxt.jsなどの他のフレームワークと併用して、Webアプリケーションのサーバーサイドレンダリング(SSR)を実装することができます。
すべての画像リンクは元の形式を保持します。
以上がFeathers.jsの初心者向けガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます
