JSON i Rest

0

Cześć
Mam pytanie co to jest JSON i REST w Javie? Jak korzystać Z REST? Może są jakieś toturiale PL?

1

generalnie gdybym miał najprościej wytłumaczyć jak to rozumiem to by było tak:
JSON - sposób zapisu danych, nic specjalnie skomplikowanego, swobodnie mozesz w głowie zamienic jakis XMLowi kod na JSONowski, przykład:

{"menu": {
   "id": "file",
   "value": "File",
   "popup": {
     "menuitem": [
       {"value": "New", "onclick": "CreateNewDoc()"},
       {"value": "Open", "onclick": "OpenDoc()"},
       {"value": "Close", "onclick": "CloseDoc()"}
     ]
   }
 }}
<menu id="file" value="File">
   <popup>
     <menuitem value="New" onclick="CreateNewDoc()" />
     <menuitem value="Open" onclick="OpenDoc()" />
     <menuitem value="Close" onclick="CloseDoc()" />
   </popup>
 </menu>

(skradzione z wikipedii :P) 1szy JSON 2gi XML - to samo w obu przypadkach

REST - to sposob budowy aplikacji sieciowych opartych o tzw. interfejs REST - czyli wystawianie usług (mozna powiedzieć, że linków) które zwracaja dane w róznych postaciach: XML/JSON itd.

korzystam ze springa i wyglada to tak, ze tworzysz klase kontrolera (np. SomethingController) i masz w nim metode która jest "powiązana", nazwijmy to, z metodą za pomocą adnotacji @RequestMapping, która znowu ma argument value="LINK".
Przez to, jak uruchomisz aplikacje i wywolasz link z tej adnotacji, to wywołana zostaje ta metoda i zwrocony wynik w postaci min. JSONa

przykład klasy:

@Controller
public class SomethingController{
    @RequestMapping(value = "/jakis/ciekawy/link", produces="application/json")
    @ResponseBody
    public List<String> match() {
        List<String> lista = new ArrayList<String>();
        lista.add("raz");
        lista.add("dwa");
        lista.add("trzy");
        return lista;
    }
}

i krótko:
@RequestMapping - dzieki temu mapujesz (po chłopsku tlumaczac) metode na link
produces= - to sugeruje co zostanie zwrocone (json/xml itd.)
@ResponseBody - to sugeruje ze metoda ma zwrocic surowe dane (czyli np json albo xml) a nie nazwe widoku (jak to w springu jest domyślnie zdaje mi sie)
EDIT: zapomnialem dodac, apropos responsebody - uzywajac np. mavena do tworzeina projektów, jesli w sciezce klas masz jacksona(taki przetwarzacz obiektow na json i na odwrot) to spring domyslnie wie, ze ma wyrzucic JSON'a. nie wiem jak w innych frameworkach restowych bo nie probowałem, jeszcze :)

dzieki temu mozesz aplikacja webowa/desktopowa/mobilna albo strona internetowa za pomoca JS odiberac te dane i prezentowac w jakis sposob

1 użytkowników online, w tym zalogowanych: 0, gości: 1