2016-08-04 3 views
0

私は現在RESTのアプリケーション、特にJavaのRESTの実装について学んでいます。REST Webアプリケーション:XML/JSONの役割は何ですか?

JSONまたはXMLはどのような役割を果たしているのですか?

私の現在の理解示すため

  1. ユーザーは、フロントエンドのボタンをクリックします。
  2. サービスクラスのURL、例えば/ユーザ/ {ユーザID}
  3. Javaメソッドがデータ
  4. を取得するために、リポジトリ(例えば、CRUDリポジトリ)クラスを呼び出すためにユーザは、その特定の周りに、例えば(リポジトリDBからデータをプル再方向付けられますユーザー)
  5. データはサービスクラスに戻され、ユーザーにUIで表示されます。

JSONまたはXMLはこのプロセスに適合しますか?

+0

'サービスクラス'は結果を 'controller'に渡し、' controller'はデータを 'JSON'に変換して' View'に渡します。 –

+0

これで、基本的にJSONまたはXMLが実際にユーザに表示されます? – java123999

+0

私は答えとして説明します。 –

答えて

1

5thステップを分割すると... 1)サービスからデータが特定の形式で返されます 2)UIがそのフォーマットでデータを受け取り、それを画面に表示します。 この形式はXMLまたはJSON、またはプレーンテキストです。これは、UIから呼び出しを行う際に言及するAccept型であり、応答ヘッダーを使用中に設定します。

JSONはJavascript Object Notationの略で、応答がJSON形式の場合は、JSON.parseを使用して解析するだけで直接javascript変数として使用できます。 Accept型は実際にはあなたの必要条件に依存します。ほとんどの場合、JSオブジェクトはJSオブジェクトに簡単に変換されるため、JSONを使用することをお勧めします。

+0

これは役立ちます。ちょうど確認する:データは、一般的にJavaオブジェクトとしてリポジトリから返されますか?どのようにこのJavaオブジェクトはJSONに変換されますか? – java123999

+0

Springを使用している場合は、JSONビューリゾルバを使用してこれらを実行できます。 http://websystique.com/springmvc/spring-4-mvc-contentnegotiatingviewresolver-example/に従うことができます。これは非常に良いサンプルプロジェクトです。 JSON、XML、pdf、xlsなどのテキストリゾルバもあなたの回答を形成します。それがあなたを助けることを願っています。 –

+0

それを見てみてくださいが、分かった "下のフード"を理解しようとしています。次は正しいですか? :1.サービスクラスがJavaオブジェクト(POJO)を返すか? 2. Javaオブジェクトを使用してJSONオブジェクトを作成します。3. JSONオブジェクトを使用して、画面上のデータをユーザーに表示しますか? – java123999

1

サービスからフロントエンドにデータが返される形式です。

+0

ありがとう、あなたは私のJSON/XMLが使用されていることを示すために与えた私の例を更新してもらえますか? – java123999

1

フロントエンドとAPIとの間のデータの伝送は、JSON及び/又はXMLで行われます。

だから、simplisticly ... ユーザーは、いくつかのWebページを介して、いくつかのデータを要求し、ウェブページは、特定のデータのためのRESTfulなAPIを尋ね、APIはその後、JSONとしてWebページにデータを送信しますウェブページはそれを操作してそれを表示するか、そのデータで何をする必要があるかを決める。その役割を説明する一般的な方法である

+0

ありがとう、JSONはDBから取得することとは何の関係もありません。上記の私の例を編集してJSONがそこに収まる方法を見せていただけますか? – java123999

+0

正しい。あなたが話しているAPIは情報を格納するためにデータベースを使用することができますが、主にjsonとxmlを使って通信します –

+0

理解を助けるシーケンスとして回答を表示してください> – java123999

1

コントローラ内部のA法は、これは、それがビュー(JSP言う)で処理することができる方法であるJSONレスポンスを

@RequestMapping(value = "/getSomething", method = RequestMethod.POST) 
    public @ResponseBody String getSomething(HttpServletRequest req) 
    { 

     JSONArray jsonArr = new JSONArray(); 
     Collection someList = new ArrayList(); 

     someList = someService.getsomeList(req); // here you get the response from service class to controller 
     Iterator iter = categoryList.iterator(); 

     while (iter.hasNext()) // iterate the colleection 
     { 
       JSONObject jsonObj = new JSONObject(); 
       SomeClass someObj = (SomeClass) iter.next(); 
       jsonObj.put("name", someObj.getName()); 
       jsonArr.put(jsonObj); 
     } 

     return jsonArr.toString(); // return jsonstring as response 
    } 

を得た下に示します。ここでは、Ajax呼び出しがコントローラーと応答をページのフィールドに設定しました。

$.ajax({ 
         url : "getSomething.htm", //request send to controller 
         type : "POST", 
         data : { 
          'someData' : data 
         }, 
         success : function(data) { 
          var arr = JSON.parse(data); 
          response($.map(arr, function(item) { 
           return { 
            value : item.name, //setting the value to the view 

           }; 
          })); 
         } 
        }); 

+0

ありがとうございます。1.サービスクラスがJavaオブジェクト(POJO )? 2. Javaオブジェクトを使用してJSONオブジェクトを作成します。3. JSONオブジェクトを使用して、画面上のデータをユーザーに表示しますか? – java123999

+0

@ java123999。あなたの質問が正しい答えとして選択されたら –

+0

他のものを明確にしたい:Javaハンドラクラスは、jsonデータを含むビューを共鳴(たとえばOK)に戻しますか?これは、データがビューに表示される方法です。 – java123999

0

あなたの例では、JSON/XMLはチェーンの終わり(ほとんど)に適合し、サーバーからクライアントにデータが返されます。

JSONとXML(および他の形式)をボックスのタイプと考えてください。いくつかの箱はプラスチック製で、いくつかは異なる目的を果たすので段ボール製です。

JSON/XMLは、サーバーに送信/要求しているデータの「ボックス」の種類です。あなたの例では

  • ユーザーは、フロントエンドのボタンをクリックします。
  • サービスクラスのURL、例えば/ユーザ/ {ユーザID}
  • Javaメソッドがデータ
  • を取得するために、リポジトリ(例えば、CRUDリポジトリ)クラスを呼び出すためにユーザは、その特定の周りに、例えば(リポジトリDBからデータをプル再方向付けられます(JSONまたはXMLのような)より一般的なフォーマットに変換されます。
  • JSON/XML形式のデータは、フロントエンドサーバーに送信されます。目的を表示するための最後

この方法では、人々/システムが参照する共通の形式がない場合は、Oracleデータベースを照会する場合、その形式を理解できる必要があります。その後、Sybaseデータベースを照会する必要があった場合は、それも理解できる必要があります。

これを解決するには、「一般的な」形式(特定の種類のトラックでしか運搬できないボックスとは対照的に、より多くのトラックに収まるようにするボックス)を選択して、そのデータを「輸送する」。

JSON/XMLは本質的にデータを表現する方法にすぎず、もともとは他の「読みにくい」形式のデータを表現し、読みやすく、扱いやすくするために使用できます。

たとえば、DBオブジェクトをJSONとして戻すことで、ほとんどのWebページ・フレームワークでは、Oracle/Sybaseフォーマットをネイティブに理解するのではなく、JSONを理解するため、Webページ・フレームワークにJSONを表示できます。このおもちゃの例の範囲を超えています)。

また、サードパーティのAPIなどのJSONを理解している他のサーバーと通信することもできます。したがって、サーバーAとBのデータ表現が異なります(内部ではOracleがサポートされ、 )彼らはまだJSONのような "共通の"フォーマットを使ってお互いに話すことができます。

関連する問題