Bmobクラウドバックエンドクラウド関数を利用して、モバイルアプリケーションとデータベースのデータインタラクションを実現します。


私についてcsdnブログに注目してください。http://blog.csdn.net/ccapton)WeChat:Ccapton Github:(https://www.github.com/ccapton)個人ブログ:http://www.ccapton.cn メール:[email protected]を選択します[email protected]
はじめに
バックエンド技術の研究に専念していないので、多くのデータベースと関わる仕事は私のこの初心者に面倒をかけています。以前はAndroidアプリを使って自分の独立データをbmobクラウドバックエンドプラットフォームに預けていましたが、ずっと呼出していたのはAndroid端のsdkコードを集めてデータベースデータの更新と取得を実現しています。この间、sdkコードを呼び出す方式は本当に硬いと思いました。しかも、大量に自由に変更すべきロジックをモバイルアプリケーションに书き込んでしまいました。今后、业务の需要が変わったら、アプリを更新するしかないです。ですから、クラウド関数でアプリデータをインタラクションするのは、モバイル端末の開発者にとってデータを取得し、更新する一番いい方法ですよね。
絵に塗った部分はあなたのbmobアプリケーションのSecret Keyです。
二、雲関数の呼び出し方法
公式の教程を見ると、いろいろなルートがあります。android、iOS、Restful、C胪、Javascript、php、webはクラウド関数を呼び出すことができます。様々なプラットフォームによって、対応するプラットフォームのsdkコードを選んでクラウド関数を呼び出すことができます。だから直接httpにアクセスする方式を使います。
クラウド関数のhttpが呼び出したurl綴りのルールは
1.GET方式http://cloud.bmob.cn/{Secret Key}/{雲関数名}?パラメータ名={値}&{パラメータ名}={値}
get方式はブラウザで直接アドレスとパラメータを入力してデータを見ることができます。テストの時はgetを使って直感的ですが、安全のためにベスト方式を使いましょう。
2.POST方式**あなたのアプリケーション内で関連POSTコードを作成する必要があります(主にパラメータ体をクラウド関数のあるurlに追加します。例えば、http://cloud.bmob.cn/{Secret Key}/{雲関数名}*。
(ps:大かっこ{}は書かないでください。括弧の中の内容はあなたが変えたいのです。)呼び出し方はここに書いてください。分からない友達は連絡してください。(私もbmob文書を見ています。)
三、雲の関数はどう書きますか?
公式教程http://doc.bmob.cn/cloud_function/web/develop_doc/
1.まず、ユーザー定義のクラウド関数を作成します。
2.この関数に名前をつけて確認します。
このように空の雲関数が配置されます。
3.クラウド関数の構造を理解する
空の雲の関数は以下の通りです。
function onRequest(request, response, modules) {

 //            request, response, modules

     // request                
     // response                

     // modules  Bmob                  
/*       (oData)、    (oFile)、      
(oLocation)、      (oRelation)、      (oAtom)、
        (oBatch)、    (oArray)、      (oPush)、
     (oFunctions)、HTTP  (oHttp)、        (oEncodeing)、
    (oEvent)、bql  (oBql)、html      (oHtmlparser)、
    (oCrypto)。 */
/* 
  :
  //       
  var db = modules.oData;
  //        
*/
}
私は雲の関数についての紹介はこんなに多くて、多くの内容は私も接触したばかりです。分からない友達は全部文書を見に行きます。文書を見て、文書を見ます。
4.例クラウド関数コード(自分で書いた登録モジュール)
function onRequest(request, response, modules) {
     var httptype = request.method;

     var username_get = request.query.username;
     var password_get = request.query.password;
     var userinfo_get = request.query.userinfo; 

     var username_post = request.body.username;
     var password_post = request.body.password; 
     var userinfo_post = request.body.userinfo;

     var username;
     var password; 
     var userinfo;

     if ("GET" == httptype) {
        //  get        
         username = username_get;
         password = password_get;
         userinfo = userinfo_get;
    }else{
        //  post           
        username = username_post;
        password = password_post;
        userinfo = username_post;
    } 

        var db = modules.oData;
    if(username === "" || username === null ){
      response.send("       ");
    } else if(password === "" || password === null){
      response.send("      ");
    }else{
        db.userSignUp({
      "data":{"username":username,"password":password} //       ,   JSON
     },function(err,data){   
        response.send(data);//    
        if(data){
      var dataObject = JSON.parse(data);
      if(dataObject.error == null){
        //           sessionToken   
        db.setHeader({"X-Bmob-Session-Token":dataObject.sessionToken});
        db.updateUserByObjectId({"objectId":dataObject.objectId ,data:JSON.parse(userinfo)},function(err,data){
          response.send("    ");
      })
    }else{
      response.send("      !");
    }
  }else{
      response.send(err);
  }
     }); 
    }
} 
四、アンディを通じて雲関数を呼び出す(http方式にアクセスする)
Androidでユーザー情報を更新し、キーコードのソースコードhttps://github.com/Ccapton/BaseApp ネットの要請フレームは私が使っているのはOKライブラリです。https://github.com/jeasonlzy/okhttp-OkGo)
 binding.update.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String url = getString(R.string.bmob_function_base_url)
                        + getString(R.string.bmob_function_update);
                JSONObject jsonObject = new JSONObject();
                try {
                    jsonObject.put("face",binding.face.getText().toString());
                    jsonObject.put("birthday",binding.birthday.getText().toString());
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                OkGo.post(url)
                        .tag(UpdateFragment.this.getActivity())
                        .params("username",binding.phone.getText().toString())
                        .params("password",binding.psw.getText().toString())
                        .params("userinfo",jsonObject.toString())
                        .execute(new StringCallback() {
                            @Override
                            public void onSuccess(Response response) {
                                System.out.println("UpdateFragment.onSuccess");
                                ToastUtils.showShort(response.body());
                            }
                        });

            }
        });
五、後記
昨日もちょうど3つのクラウド関数を書き終えました。登録、ログイン、情報更新はとてもいい感じです。だから、この文章を書く動機があります。現在のクラウド機能はbmobアプリの創建前40日間無料です。後で有料になります。商用のパートナーは継続費に注意してください。現在のクラウド関数の使用価格は50元/月です。
はい、皆さんの仕事が順調で、楽しい生活ができますように。ようこそ、私のgithubを訪問しました。https://github.com/Ccapton androidエンドテスト項目https://github.com/Ccapton/BaseApp