Mnogi programeri će tvrditi da je JSON može da ide sa bilo kojim programskim projektom, ali čak i kako XML postaje manje popularan, on ima svoje mesto u svetu programiranja. Još uvek postoje slučajevi kada bi trebalo da koristite XML umesto JSON-a. Ako iz temelјa pravite web API, trebalo bi da odredite koja je tehnologija najbolјa za vaše potrebe.
Evo nekih prednosti i nedostataka za JSON i XML u aplikaciji.
Za i protiv XML
XML je dugogodišnji jezik koji i danas ima relevantnost. Mnoge starije tehnologije koje vidite na tržištu koriste ga, tako da ako trebate da radite sa API-jem koji postoji već duže od jedne decenije, velike su šanse da ćete trebati da sarađujete sa XML-om. Stariji API-ji vam ne daju izbor u formatu koji možete da koristite.
XML je koristan kada imate velike količine svojstava, metoda i atributa koje morate da uklopite u jedan zapis. Pretpostavimo da imate datoteku koja definiše objekt, a vi morate da opišete atribute tog objekta unutar skupa podataka. Možete da koristite XML i njegovu sintaksu „nalik HTML-u“ da biste analizirali svako svojstvo i atribut ugrađen u zapis.
Ne možete da izbegnete XML ako odlučite da koristite XSLT. Iako se danas retko koristi, XSLT je deo mnogih front-end projekata web dizajna. XSLT je markacija koja čita atribute XML zapisa i pretvara ih u izgled da bi korisnici mogli da ga obrade. Možete da uporedite XSLT sa CSS-om za HTML skripte. CSS kaže browzeru kako da dizajnira i predstavi HTML dokument korisniku, dok XSLT opisuje način na koji bi korisnik trebalo da vidi XML dokument.
Još jedna prednost je što XML čitači raščlanjuju i potvrđuju XML poruku. Ako je nepravilno formatirana, programer dobija poruku o grešci. Ovo upozorenje pomaže programeru da izbegne loše struktuiran XML koji rezultira „neurednom“ prezentacijom podataka. Pošto poruka može da se odbije i pošalje korisniku, zagarantovano je da će podaci uvek imati pravu strukturu kada radite sa API sistemima.
Drugi razlog zašto vam je potreban XML je ako koristite API-je trećih strana za generisanje podataka u vašem sistemu. Ako oni ne nude način slanja i primanja poruka u JSON-u, tada ćete biti prisilјeni da radite sa XML-om bez obzira da li želite ili ne. I dalјe možete da radite sa JSON-om u vašim internim aplikacijama, ali prebacivanje između JSON-a i XML-a može da bude zamorno i stvara dodate režijske troškove u vašem programiranju što nije potrebno.
Sve u svemu, XML je i dalјe važeći jezik za programere koji imaju veliku količinu podataka sa nekoliko atributa za prenos između API poruka. Međutim, većina programera ne voli da radi sa njime, jer je format komplikovan i povećava troškove za obradu podataka.
Za i protiv JSON-a
Nakon što su programeri izgubili interesovanje za XML, JSON je preuzeo kao format izbora za prenos poruka na platformama. I JSON i XML su nezavisni od platforme, ali JSON je mnogo jednostavniji jezik od XML-a. Iz tog razloga, ima neke prednosti u odnosu na upotrebu XML-a kada pravite API.
Pošto je JSON jednostavan, on se čini mnogo lakšim za analizu. Nemate sve oznake i atribute XML-a, tako da je sjajno kada imate jednostavne objekte podataka koje morate da prosledite između dve platforme. Na primer, ako trebate samo da premestite klijentov objekt sa svim pripadajućim podacima, JSON vam omogućuje da strukturišete svoj objekt u formatu koji se lako čita i lako prepoznaje greške.
Jedan od problema sa JSON-om je da greške u formatiranju nisu potvrđene, što otežava sigurnost korisnika da proslede prave podatke vašem API-ju. Mnogi jezici imaju unapred definisane klase i module koji olakšavaju serializaciju i deserializaciju JSON podataka. Zamislite ovaj postupak kao način da spakujete poruku i izvučete je unutar svoje aplikacije. Složene strukture poput XML-a teško je pakovati dok je JSON mnogo lakši i za programere i za osnovne module koji rade sa podacima.
Mnogi API-ji koriste JSON, ali je takođe i noviji format od XML-a. Ako pravite novi API, trebalo bi da radite sa JSON-om ako nemate složene strukture podataka. Bilo koji programer koji radi sa vašim API-em će misliti da je JSON podrazumevani jer je postao standard u industriji. Ako napravite novi API sa XML-om, programeri možda neće biti privučeni za vas u odnosu na vaše konkurente. Imajte na umu da je privlačenje programera u API način na koji tehnološke kompanije postaju zainteresovane za svoje softverske proizvode.
Ako vam je potreban način da formatirate JSON, morate da koristite sopstvene alate za raščlanjivanje i dizajn. JSON nema jezik dizajna na način na koji XML ima XSLT. Možete da učitate JSON podatke u posebne dizajnerske elemente koje prodaju treće strane, ali moraćete da uzmete velike skupove podataka i prikaćete ih u browzeru.
Dakle, koji format treba da koristite sa novim web API-jem?
API-ji su poslednji u izgradnji softverskog brenda. To privlači programere vašim proizvodima i tera ih da integrišu njihov sopstveni softver sa vašim sopstvenim. Odličan je način da plasirate na tržište svoju tehnološku kompaniju i privučete više kupaca.
Programeri nalik API-jevim se lako integrišu i lako se čitaju. Složeni API-ji rade za veće, dobro poznate organizacije, ali oni mogu da isklјuče programere kada je kompanija mala sa nekoliko konkurenata.
Ako nemate dobar razlog za korišćenje XML-a, trebalo bi da radite sa JSON-om. JSON je jednostavan za razumevanje, ima manje režijskih troškova od XML-a i lakši je za analizu. Ako nemate složene strukture podataka koje su neizbežne, isklјučite JSON poruke sa krajnjim tačkama API-ja. To nije uvek opcija, pa pođite sa XML-om ako imate značajne strukture podataka za koje je potrebno nekoliko atributa prilikom formatiranja.
Iako se upotreba formata podataka čini malim razmatranjem, može da napravi veliku razliku kada konačno razvijete svoj API. Upotrebu prave strukture podataka trebalo bi dobro da razmotrite pre nego što je primenite u svoj dizajn.