{"id":1767,"date":"2025-09-11T07:21:20","date_gmt":"2025-09-11T07:21:20","guid":{"rendered":"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/?page_id=1767"},"modified":"2025-09-11T09:24:46","modified_gmt":"2025-09-11T09:24:46","slug":"veebiteenused","status":"publish","type":"page","link":"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/veebiteenused\/","title":{"rendered":"Veebiteenused"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">API<\/h2>\n\n\n\n<p>API on sisuliselt tarkvararakenduste vahendaja, mis v\u00f5imaldab erinevatel s\u00fcsteemidel omavahel suhelda. API kaudu saavad veebisaidid v\u00f5i rakendused vahetada andmeid teiste sisemiste v\u00f5i v\u00e4liste s\u00fcsteemidega.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">REST API<\/h2>\n\n\n\n<p>REST API on arhitektuuristiil, mis m\u00e4\u00e4ratleb veebiteenuste loomisel kasutatavate piirangute komplekti.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"827\" height=\"572\" src=\"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/rest1.png\" alt=\"\" class=\"wp-image-1772\" srcset=\"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/rest1.png 827w, https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/rest1-300x207.png 300w, https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/rest1-768x531.png 768w, https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-content\/uploads\/2025\/09\/rest1-150x104.png 150w\" sizes=\"auto, (max-width: 827px) 100vw, 827px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">SOAP<\/h2>\n\n\n\n<p>SOAP on arvutiv\u00f5rkudes kasutatav protokoll, millega veebiteenused vahetavad omavahel struktuurseid andmeid.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">WSDL &amp; UDDI<\/h2>\n\n\n\n<p>WSDL on <a href=\"https:\/\/et.wikipedia.org\/wiki\/XML\">XML<\/a>-vorming, mis kirjeldab veebiteenust.<\/p>\n\n\n\n<p>UDDI on teenuste leidmise protokoll, nagu veebiteenuste &#8220;kollased lehed&#8221;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">RESTful<\/h2>\n\n\n\n<p>Enamik API-sid maailmas on RESTful, mis t\u00e4hendab, et nad j\u00e4rgivad suures osas teatud reeglite v\u00f5i \u00f5ieti piirangute kogumit, mida tuntakse kui Representational State Transfer ehk REST, mis on alates 2000. aastate algusest olnud de facto standard API-de arendamisel. De facto sellep\u00e4rast, et ametlikult ei ole REST standard, vaid Roy Fieldingu poolt doktorikraadi v\u00e4itekirjas kirja pandud parimate praktikate kirjeldus, millele on aegade jooksul lisandunud ka teisi h\u00e4id tavasid.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Harjutus 1<\/h2>\n\n\n\n<p>1. Paigalda <a href=\"https:\/\/moodle.edu.ee\/mod\/glossary\/showentry.php?eid=133140&amp;displayformat=dictionary\">Node.js<\/a><br>5. Loo t\u00f6\u00f6lauale kaust&nbsp;<a href=\"https:\/\/moodle.edu.ee\/mod\/glossary\/showentry.php?eid=133143&amp;displayformat=dictionary\">rest<\/a>&#8211;<a href=\"https:\/\/moodle.edu.ee\/mod\/glossary\/showentry.php?eid=133127&amp;displayformat=dictionary\">api<\/a>&nbsp;<br>3. K\u00e4ivita koodiredaktor (nt VS Code, WebStorm vms) ja ava see kaust projektina<br>4. Loo kausta fail index.js j\u00e4rgneva sisuga<\/p>\n\n\n\n<p>Me teeme rakenduse, kus saame lisada ja saada andmeid massiivist, kus on salvestatud \u201eWidgets\u201c.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Code<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const express = require('express');\nconst cors = require('cors');\nconst app = express();\n\napp.use(cors());        \/\/ Avoid CORS errors in browsers\napp.use(express.json()) \/\/ Populate req.body\n\nconst widgets = &#91;\n    { id: 1, name: \"Cizzbor\", price: 29.99 },\n    { id: 2, name: \"Woowo\", price: 26.99 },\n    { id: 3, name: \"Crazlinger\", price: 59.99 },\n&#93;\n\napp.get('\/widgets', (req, res) => {\n    res.send(widgets)\n})\n\napp.get('\/widgets\/:id', (req, res) => {\n    if (typeof widgets&#91;req.params.id - 1&#93; === 'undefined') {\n        return res.status(404).send({ error: \"Widget not found\" })\n    }\n    res.send(widgets&#91;req.params.id - 1&#93;)\n})\n\napp.post('\/widgets', (req, res) => {\n    if (!req.body.name || !req.body.price) {\n        return res.status(400).send({ error: 'One or all params are missing' })\n    }\n    let newWidget = {\n        id: widgets.length + 1,\n        price: req.body.price,\n        name: req.body.name\n    }\n    widgets.push(newWidget)\n    res.status(201).location('localhost:8080\/widgets\/' + (widgets.length - 1)).send(\n        newWidget\n    )\n})\n\napp.listen(8080, () => {\n    console.log(`API up at: http:\/\/localhost:8080`)\n})<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F286C4\">const<\/span><span style=\"color: #F6F6F4\"> express <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">require<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">express<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">const<\/span><span style=\"color: #F6F6F4\"> cors <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">require<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">cors<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">const<\/span><span style=\"color: #F6F6F4\"> app <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">express<\/span><span style=\"color: #F6F6F4\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">app.<\/span><span style=\"color: #62E884\">use<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #62E884\">cors<\/span><span style=\"color: #F6F6F4\">());        <\/span><span style=\"color: #7B7F8B\">\/\/ Avoid CORS errors in browsers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">app.<\/span><span style=\"color: #62E884\">use<\/span><span style=\"color: #F6F6F4\">(express.<\/span><span style=\"color: #62E884\">json<\/span><span style=\"color: #F6F6F4\">()) <\/span><span style=\"color: #7B7F8B\">\/\/ Populate req.body<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">const<\/span><span style=\"color: #F6F6F4\"> widgets <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> &#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    { id<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">, name<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Cizzbor<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">, price<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">29.99<\/span><span style=\"color: #F6F6F4\"> },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    { id<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">2<\/span><span style=\"color: #F6F6F4\">, name<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Woowo<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">, price<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">26.99<\/span><span style=\"color: #F6F6F4\"> },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    { id<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">3<\/span><span style=\"color: #F6F6F4\">, name<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Crazlinger<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">, price<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">59.99<\/span><span style=\"color: #F6F6F4\"> },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">app.<\/span><span style=\"color: #62E884\">get<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">\/widgets<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">, (<\/span><span style=\"color: #FFB86C; font-style: italic\">req<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #FFB86C; font-style: italic\">res<\/span><span style=\"color: #F6F6F4\">) <\/span><span style=\"color: #F286C4\">=&gt;<\/span><span style=\"color: #F6F6F4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    res.<\/span><span style=\"color: #62E884\">send<\/span><span style=\"color: #F6F6F4\">(widgets)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">})<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">app.<\/span><span style=\"color: #62E884\">get<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">\/widgets\/:id<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">, (<\/span><span style=\"color: #FFB86C; font-style: italic\">req<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #FFB86C; font-style: italic\">res<\/span><span style=\"color: #F6F6F4\">) <\/span><span style=\"color: #F286C4\">=&gt;<\/span><span style=\"color: #F6F6F4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (<\/span><span style=\"color: #F286C4\">typeof<\/span><span style=\"color: #F6F6F4\"> widgets&#91;req.params.id <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">&#93; <\/span><span style=\"color: #F286C4\">===<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">undefined<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> res.<\/span><span style=\"color: #62E884\">status<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #BF9EEE\">404<\/span><span style=\"color: #F6F6F4\">).<\/span><span style=\"color: #62E884\">send<\/span><span style=\"color: #F6F6F4\">({ error<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Widget not found<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\"> })<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    res.<\/span><span style=\"color: #62E884\">send<\/span><span style=\"color: #F6F6F4\">(widgets&#91;req.params.id <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">})<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">app.<\/span><span style=\"color: #62E884\">post<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">\/widgets<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">, (<\/span><span style=\"color: #FFB86C; font-style: italic\">req<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #FFB86C; font-style: italic\">res<\/span><span style=\"color: #F6F6F4\">) <\/span><span style=\"color: #F286C4\">=&gt;<\/span><span style=\"color: #F6F6F4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (<\/span><span style=\"color: #F286C4\">!<\/span><span style=\"color: #F6F6F4\">req.body.name <\/span><span style=\"color: #F286C4\">||<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">!<\/span><span style=\"color: #F6F6F4\">req.body.price) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> res.<\/span><span style=\"color: #62E884\">status<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #BF9EEE\">400<\/span><span style=\"color: #F6F6F4\">).<\/span><span style=\"color: #62E884\">send<\/span><span style=\"color: #F6F6F4\">({ error<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">One or all params are missing<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\"> })<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">let<\/span><span style=\"color: #F6F6F4\"> newWidget <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        id<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> widgets.length <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        price<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> req.body.price,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        name<\/span><span style=\"color: #F286C4\">:<\/span><span style=\"color: #F6F6F4\"> req.body.name<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    widgets.<\/span><span style=\"color: #62E884\">push<\/span><span style=\"color: #F6F6F4\">(newWidget)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    res.<\/span><span style=\"color: #62E884\">status<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #BF9EEE\">201<\/span><span style=\"color: #F6F6F4\">).<\/span><span style=\"color: #62E884\">location<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">localhost:8080\/widgets\/<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> (widgets.length <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">)).<\/span><span style=\"color: #62E884\">send<\/span><span style=\"color: #F6F6F4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        newWidget<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">})<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">app.<\/span><span style=\"color: #62E884\">listen<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #BF9EEE\">8080<\/span><span style=\"color: #F6F6F4\">, () <\/span><span style=\"color: #F286C4\">=&gt;<\/span><span style=\"color: #F6F6F4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    console.<\/span><span style=\"color: #62E884\">log<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #E7EE98\">`API up at: http:\/\/localhost:8080`<\/span><span style=\"color: #F6F6F4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">})<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>API API on sisuliselt tarkvararakenduste vahendaja, mis v\u00f5imaldab erinevatel s\u00fcsteemidel omavahel suhelda. API kaudu saavad veebisaidid v\u00f5i rakendused vahetada andmeid teiste sisemiste v\u00f5i v\u00e4liste s\u00fcsteemidega. REST API REST API on arhitektuuristiil, mis m\u00e4\u00e4ratleb veebiteenuste loomisel kasutatavate piirangute komplekti. SOAP SOAP on arvutiv\u00f5rkudes kasutatav protokoll, millega veebiteenused vahetavad omavahel struktuurseid andmeid. WSDL &amp; UDDI WSDL on [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1767","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages\/1767","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-json\/wp\/v2\/comments?post=1767"}],"version-history":[{"count":6,"href":"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages\/1767\/revisions"}],"predecessor-version":[{"id":1777,"href":"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-json\/wp\/v2\/pages\/1767\/revisions\/1777"}],"wp:attachment":[{"href":"https:\/\/aleksandermilisenko23.thkit.ee\/wp\/wp-json\/wp\/v2\/media?parent=1767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}