0

IOS 用のアプリを作成しており、サーバー側で NodeJS を使用したいと考えています。サーバーは、mongodb データベースからデータを変更または取得するためのパラメーターを使用して要求を処理する必要があります。その手段についてアドバイスをいただきたいです。Socket.io を使用する必要がありますか?それとも高速ルーティングで十分ですか?

これは一種の安らかなはずなので、高速ルーティングを使い始めました。メソッドを使用して URL を作成します。これはクライアント側のパラメーターであり、サーバー側の各ハンドラー メソッド内でパラメーターをルーティングして取得します。Passportで認証できるみたいなので問題ないです。私が奇妙だと思うのは、非常に多くのパラメーターでリクエスト URL が大きくなる方法です...おそらく、ユーザーがパラメーターの 1 つにスラッシュを含む文字列を送信すると、問題が発生するのではないでしょうか?

言及するのをほとんど忘れていました(これがあまりにもばかげている場合は、遠慮なく私に石を投げてください):パラメーターリクエスト(ルーティングの場合)を文字列化されたJSONとして渡すことを考えていました...それは見た目ほど悪いですか? 例えば:

  • ユーザーデータを取得するには:url/users/findById/{"userid":"21312313"}
  • ユーザーを追加するには:url/users/addUser/{"name": "John", "lastname": "Foobar"}

代わりに Socket.io を使用する必要がありますか?

お知らせ下さい。

4

3 に答える 3

1

restAPI には、いくつかの一般的な方法があります。
例えば:

それ以外の

url/users/findById/{"userid":"21312313"}

使用する

GET url/users/findById/21312313

また

 GET url/users/findById?userid=21312313  
 //you will think of other as
 GET url/users/addUser?name=John&lastname=Foobar 
 //But it is wrong. While Adding things request should be handled by PUT or POST method not GET
 //when doing PUT or POST sent parameters are not included in url

詳細については、 http: //www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api のような記事を参照してください。

于 2013-10-22T05:49:29.883 に答える
1

Socket.io は、リアルタイムの nodejs アプリケーションを構築するために作られています。意図しない場合は、単純な安らかなAPIにexpressjs Webフレームワークを使用することもできます。これも目的を果たします。

私が奇妙だと思うのは、非常に多くのパラメーターでリクエスト URL が大きくなる方法です...おそらく、ユーザーがパラメーターの 1 つにスラッシュを含む文字列を送信すると、問題が発生するのではないでしょうか?

上記の行で理解している限り、クライアントのパラメーターをメソッドに入れるencodeURIComponentだけで、URL 形式でエンコードするだけなので、心配する必要はありません。それ以外の場合は、サーバー側のエクスプレス ルーティングで 正規表現を使用できます。

ユーザーデータを取得するには: url/users/findById/{"userid":"21312313"}

ポストリクエストの場合はサーバー側でユーザーIDを単純に受け入れることができますreq.body['userid']。それ以外の場合はreq.queryを試してください...

于 2013-10-22T04:44:57.807 に答える
1

Socket.io は、さまざまな種類の通信用に設計されています。簡単に言えば、サーバーとクライアントの間に確立された通信層を持つのに適しています。この場合、サーバーは要求なしでメッセージを開始することもできます。

RESTful API パターンを確認する必要があります。それらは、適切な標準に従って、HTTP を使用してデータをフェッチ、更新、追加、および削除するための適切でクリーンなパターンを定義します。たとえば、ユーザーの情報を取得することは get リクエストを に送信することであり、ユーザーを追加することは、ユーザー データを投稿本文の JSON オブジェクトとして に/users/idPOST を実行することです。/users

私が見つけた RESTful API に関する記事のほとんどはあまり良くありませんでしたが、これで十分だと思います。

于 2013-10-22T05:34:47.990 に答える