代替バックエンドとしてのparseサーバの設定
時々、我々は地面から本格的なバックエンドを開発するのが不可能であるとき、状況に遭遇します.そのような状況では、開発をスピードアップするようなサービスに頼ります.
parseはサービス(MBAAS)プラットフォームとしてのオープンソースモバイルバックエンドです.以前は、parseはFireBaseに似たバックエンドプラットフォームでした.2016年に、フェイスブックは、プラットホームコードをオープンして、彼らのホスティングサービスをsunsettedしました.この記事では、解析を簡単に見て、どのようにアプリケーションをすばやく展開できるかを見ていきます.
Parse REST APIとGraphqlをサポートし、本格的なバックエンドです.それはオープンソースであり、活発にコミュニティによって維持されています.
それは、IOS、Android、JavaScript、および他のプラットフォームで利用可能なSDKを持っているだけでなく、キャンペーンを含むプッシュ通知のサポート、ボックスのユーザー管理、サポートのためのOAuth providers (フェイスブック、ツイッター、グーグル、ギタブ、LDAPなど)、Dockerのサポート、様々な展開オプションplatforms (AWSとHerokuを含む)だけでなく、さまざまなストレージアダプタのサポート.
parseはwebhook , job , configで拡張可能です.あなたはExpressと一緒に使用することができます.js
parseは、ノード8 +、mongodb、postgresqlを設定する必要があります.Unixライクなシステムでは、ノードにNVMを使うことをお勧めします.JSインストール.手順は次のとおりです.
そして、それ!我々はparseバックエンドを正常に数分で実行している.
便利にするために、Parseダッシュボード- Parse Server用のVisual Adminパネルをインストールできます.走る
前述のように、Parseはデータを簡単に保存することができます.すべてのデータの基本単位はオブジェクトAPIです.たとえば、キークラスのメーカーとモデルを使用して車両クラスを定義する場合、単純なcurlリクエストを使用してCRUD REST操作を実行できます.
データと同様に、ファイルのアップロードは簡単です.ファイルURLは
しかし、手動でコンテンツタイプを処理する必要があります.
parseはボックスユーザ認証を提供します.これは、トークンベースの認証、ログイン、ログイン、電子メールの検証、リセットパスワード、トークンベースのセッション管理、およびロールベースのアクセス管理のようなユーザーアクションが含まれます.利用者の経路は
データを確保するために、parseはクラスレベルの許可(CLP)とアクセス制御リスト(ACL)を提供します.CLPはロールへのデータアクセスに対して細かい制御を提供します.クラスレベルのパーミッションを使用すると、ロールを定義できます. 新しいクラスを作成する クラスにフィールドを追加する クラスからデータを読み込むか、問い合わせる さらに、ACLSを使用すると、個人やロールにオブジェクトへのアクセスを制限できます.ACLの例は次のようになります.
お客様には近づきません 認証を必要とします. は定義済みロール管理者を持ち、すべての操作を行うことができます. 下の写真は、パースドキュメントから、CLPSとACLの相互作用を示します.
クラウド関数は、parseバックエンドでカスタム関数を定義することを可能にします. フックは、他の言語でカスタムコードを実行し、サーバー側のロジックを拡張できます. ジョブは、私たちが応答を待つ必要がないように、長期にわたる機能を実行するのを許します. トリガは、データが変更される前/後にカスタムコードを記述できます. Analyticsは我々のアプリケーションに寸法とメトリックを追加することができます. プッシュダッシュボードは、私たちの携帯アプリのカスタムプッシュキャンペーンを作成することができます. ジオポイントは、オブジェクトと現実世界の緯度と縦を関連付けることができます. config configパラメータを保存します.
Chisel Parseに組み込まれたAPI最初のヘッドレスCMSです.parse上でのchiselの設定はとても簡単です.
Chiselは複数のサイトを設定できる管理パネルを提供します.その上、独自のParse server . 任意の解析サーバーでChiselを実行することができますが、Chiselのサーバーは、ブログや知識ベースのような便利なテンプレートを持っています.
をチェックすることは賢明ですdata structures and content publishing ダイビング前のライフサイクル.
Parse auditor Enversプロジェクトに触発されたモジュールです.これは自動化されたデータの追跡/クラスに監査を追加します.これはアプリケーションがHIPAAのような規則を遵守するために必要なときに便利です.監査役を解析しなければなりません.パース監査役がどのように働くかを見てみましょう
我々には仮定しましょう
監査役を設定するには、クラウドコードを編集する必要があります.まず、Parseサーバーとダッシュボードの実行中のインスタンスをシャットダウンします.次に、parseインストールのクラウドフォルダに移動します.クラウド・フォルダがなければ
デフォルトでは メタアンサー俳優:このイベントに関係するユーザー.更新をしたユーザーか、このレコードを見た人. メタノーアクション:“保存”、“削除”、または“検索”ユーザーが撮影したアクションに応じてされます. メタウインクラス:クラスの名前は、多くのクラス間で複雑な監査履歴を組み合わせるときに便利です. メタリック件名:編集/閲覧されている行. プラグインはさらにこれらのフィールドを使用して設定できます.
この記事では、我々はすぐにParseを使用してアプリケーションのバックエンドを生成する方法を見てきました.
パーミッションをどのように扱うか、どのようにデータを確保するかをカバーしています.また、我々はパースで使用できる2つの便利なツールをカバーしている:チゼルCMSとパース監査役.
parseはサービス(MBAAS)プラットフォームとしてのオープンソースモバイルバックエンドです.以前は、parseはFireBaseに似たバックエンドプラットフォームでした.2016年に、フェイスブックは、プラットホームコードをオープンして、彼らのホスティングサービスをsunsettedしました.この記事では、解析を簡単に見て、どのようにアプリケーションをすばやく展開できるかを見ていきます.
概要
Parse REST APIとGraphqlをサポートし、本格的なバックエンドです.それはオープンソースであり、活発にコミュニティによって維持されています.
それは、IOS、Android、JavaScript、および他のプラットフォームで利用可能なSDKを持っているだけでなく、キャンペーンを含むプッシュ通知のサポート、ボックスのユーザー管理、サポートのためのOAuth providers (フェイスブック、ツイッター、グーグル、ギタブ、LDAPなど)、Dockerのサポート、様々な展開オプションplatforms (AWSとHerokuを含む)だけでなく、さまざまなストレージアダプタのサポート.
parseはwebhook , job , configで拡張可能です.あなたはExpressと一緒に使用することができます.js
パースの設定
parseは、ノード8 +、mongodb、postgresqlを設定する必要があります.Unixライクなシステムでは、ノードにNVMを使うことをお勧めします.JSインストール.手順は次のとおりです.
npm install -g parse-server mongodb-runner
mongodb-runner start
parse-server --appId APPLICATION_ID --masterKey MASTER_KEY --databaseURI mongodb://localhost/test
Dockerを使用して解析を開始することもできます.git clone https://github.com/parse-community/parse-server
cd parse-server
docker build --tag parse-server .
docker run --name my-mongo -d mongo
docker run --name my-parse-server -v cloud-code-vol:/parse-server/cloud -v config-vol:/parse-server/config -p 1337:1337 --link my-mongo:mongo -d parse-server --appId APPLICATION_ID --masterKey MASTER_KEY --databaseURI mongodb://mongo/test
APPLICATION_ID
はアプリケーションの名前であり、ユーザが生成することができます.MASTER_KEY
はすべてのパーミッションを上書きできるキーです.その他のパラメータは以下の通りです.databaseURI
: MongoDBの接続文字列URI.cloud
: あなたのアプリケーションのクラウドコードへのパス.appId
: あなたのアプリケーションのユニークな識別子.fileKey
: ファイル記憶に使用される接頭辞を指定するキー.移行されたアプリケーションの場合、これはparse上ですでにホストされているファイルへのアクセスを提供するために必要です.masterKey
: すべてのパーミッションを上書きするキー.秘密を守りなさい.clientKey
: あなたのアプリケーションのクライアントキー.(オプション)restAPIKey
: あなたのアプリケーションの残りのAPIキー.(オプション)javascriptKey
: あなたのアプリケーションのJavaScriptキー.(オプション)dotNetKey
: .あなたのアプリケーションのためのネットキー.(オプション)push
: プッシュ構成を含むオブジェクト.プッシュ参照filesAdapter
: ファイルアダプタインターフェイスを実装するオブジェクトです.例えば、S 3ファイルアダプタauth
: サードパーティ認証のサポートを構成します.maxUploadSize
: 最大ファイルアップロードサイズ.便利にするために、Parseダッシュボード- Parse Server用のVisual Adminパネルをインストールできます.走る
parse-dashboard
, グローバルにインストールする必要があります.npm -i g parse-dashboard
parse-dashboard --dev --appId APPLICATION_ID --masterKey MASTER_KEY --serverURL "http://localhost:1337/parse/" --appName SimpleFileStorage
ダッシュボードにアクセスできますlocalhost:4040
. このチュートリアルでは、残りのAPIを使用します.バックエンド機能
データの保存
前述のように、Parseはデータを簡単に保存することができます.すべてのデータの基本単位はオブジェクトAPIです.たとえば、キークラスのメーカーとモデルを使用して車両クラスを定義する場合、単純なcurlリクエストを使用してCRUD REST操作を実行できます.
curl -X POST \
-H "X-Parse-Application-Id: simple_file_storage" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"manufacturer": "Lamborghini", "model": "Gallardo"}' \
http://localhost:1337/parse/classes/vehicle
我々は得るobjectId
and created _date
応えて.オブジェクトの更なる操作は、使用することができますobjectid
.curl -X GET \
-H "X-Parse-Application-Id: simple_file_storage" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: application/json" \
http://localhost:1337/parse/classes/vehicle/objectId
curl -X PUT \
-H "X-Parse-Application-Id: simple_file_storage" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"manufacturer": "Lamborghini", "model": "Murcielago"}' \
http://localhost:1337/parse/classes/vehicle/objectId
curl -X DELETE \
-H "X-Parse-Application-Id: simple_file_storage" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
http://localhost:1337/parse/classes/objectId
クラスが定義されていない場合は、サーバーによって作成されます.Parseダッシュボードを使用してカスタムクラスを作成できます.データ型に関する限り、parseは文字列、数字、Boolean、配列、JSONオブジェクト、日付時刻、ファイル、およびNULLをサポートしています.さらに、parseは2つのカスタムデータ型、もう一つの解析オブジェクトへのポインタと他のparseクラスへの関係を持ちます.parseのデータ型はロックされます.データ型が設定されると、何かを保存しようとするとエラーが返されます.ファイル
データと同様に、ファイルのアップロードは簡単です.ファイルURLは
/files
ルートとファイル名.しかし、手動でコンテンツタイプを処理する必要があります.
curl -X POST \
-H "X-Parse-Application-Id: simple_file_storage" \
-H "X-Parse-REST-API-Key: REST_API_KEY" \
-H "Content-Type: image/jpeg" \
--data-binary '@myPicture.jpg' \
http://localhost:1337/parse/files/pic.jpg
レスポンスとして、保存されたファイルのファイルの場所と名前を受け取ります.ファイル名に一意の識別子が追加されます.{
"url": "http://localhost:1337/parse/files/simple_file_storage/d840137c22d89d126075ec7fa875c54f_pic.jpg",
"name": "d840137c22d89d126075ec7fa875c54f_pic.jpg"
}
認証とセキュリティ
parseはボックスユーザ認証を提供します.これは、トークンベースの認証、ログイン、ログイン、電子メールの検証、リセットパスワード、トークンベースのセッション管理、およびロールベースのアクセス管理のようなユーザーアクションが含まれます.利用者の経路は
/parse/users
, 役割のルートは/parse/roles
とセッションのルートは/parse/sessions
. データを確保するために、parseはクラスレベルの許可(CLP)とアクセス制御リスト(ACL)を提供します.CLPはロールへのデータアクセスに対して細かい制御を提供します.クラスレベルのパーミッションを使用すると、ロールを定義できます.
{
classLevelPermissions:
{
"find": {
"requiresAuthentication": true,
"role:admin": true
},
"get": {
"requiresAuthentication": true,
"role:admin": true
},
"create": { "role:admin": true },
"update": { "role:admin": true },
"delete": { "role:admin": true }
}
}
この特定のオブジェクト雑多な特徴
チェゼルとパース監査役とのパース拡張
チゼルCMS
Chisel Parseに組み込まれたAPI最初のヘッドレスCMSです.parse上でのchiselの設定はとても簡単です.
npm install -g chisel-cms
chisel-cms --appId "APP_ID" --serverURL "https://YOURSERVER.com/parse"
チゼルが始まるlocalhost:9000
.Chiselは複数のサイトを設定できる管理パネルを提供します.その上、独自のParse server . 任意の解析サーバーでChiselを実行することができますが、Chiselのサーバーは、ブログや知識ベースのような便利なテンプレートを持っています.
をチェックすることは賢明ですdata structures and content publishing ダイビング前のライフサイクル.
監査役を務める
Parse auditor Enversプロジェクトに触発されたモジュールです.これは自動化されたデータの追跡/クラスに監査を追加します.これはアプリケーションがHIPAAのような規則を遵守するために必要なときに便利です.監査役を解析しなければなりません.パース監査役がどのように働くかを見てみましょう
我々には仮定しましょう
ImportantData
and SortOfImportanData
解析のクラス.我々は両方のクラスのデータの変更を追跡し、知っているImportantData
がアクセスされた.監査役を設定するには、クラウドコードを編集する必要があります.まず、Parseサーバーとダッシュボードの実行中のインスタンスをシャットダウンします.次に、parseインストールのクラウドフォルダに移動します.クラウド・フォルダがなければ
main.js
クラウドフォルダ内のファイル.クラウドフォルダーの絶対パスが必要です.次のようになります.C:\somefolder\Parse\cloud\main.js
クラウドフォルダの中にparse-auditor
の依存package.json
{
"dependencies": {
"parse-auditor": "*"
}
}
さて、main.js
ファイルは次のようになります.const ParseAuditor = require('parse-auditor');
ParseAuditor(['ImportantData', 'SortOfImportantData'],['ImportantData'])
最初のparamはクラス名の配列をとり、それらを別々に追跡しますClass_AUD
クラス.番目のparamは、クラス名の配列とClass_AUD
クラス.デフォルトでは
ImportantData
and SortOfImportantData
で追跡されますImportantData_AUD
and SortOfImportantData_AUD
. イメージImportantData
で追跡されますSortOfImportantData_AUD
. 監査ログには4つの追加フィールドが付属しています.{
classPrefix: '', //Class Prefix
classPostfix: '_AUD', //Class Postfix
fieldPrefix: 'meta_', //field Postfix
fieldPostfix: '', // field Postfix
parseSDK: Parse, //SDK Object
useMasterKey: false, //MasterKey
clp: {} //Class Level Permissions
}
以下の例を考えてください.const ParseAuditor = require('parse-auditor');
const customConfig = { classPostfix: '_LOGS' };
ParseAuditor(['ImportantData', 'SortOfImportantData'], ['ImportantData'], customConfig);
これは、データをログログで満たされたクラスにログ出力します.サーバーを起動するにはmain.js
以下のように、クラウド・パームに.parse-server --appId APPLICATION_ID --masterKey MASTER_KEY --databaseURI mongodb://localhost/test --cloud "C:\somefolder\Parse\cloud\main.js"
これにより、カスタムロギングでパースを設定できました.最後の思考
この記事では、我々はすぐにParseを使用してアプリケーションのバックエンドを生成する方法を見てきました.
パーミッションをどのように扱うか、どのようにデータを確保するかをカバーしています.また、我々はパースで使用できる2つの便利なツールをカバーしている:チゼルCMSとパース監査役.
Reference
この問題について(代替バックエンドとしてのparseサーバの設定), 我々は、より多くの情報をここで見つけました https://dev.to/jscrambler/setting-up-a-parse-server-as-an-alternative-backend-414bテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol