[{"data":1,"prerenderedAt":531},["ShallowReactive",2],{"i-kinnu:logo":3,"i-kinnu:origami-folding":8,"tile-technology-backend-development-ap-is":12,"i-lucide:chevron-right":526,"i-lucide:menu":529},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,27,false,"\u003Cg fill=\"none\">\u003Cpath d=\"M0.046875 1.05555C0.046875 1.03541 0.048197 1.01579 0.0507438 0.996728C0.0987149 0.438619 0.586845 0 1.18194 0H25.4398C26.451 0 26.9575 1.171 26.2424 1.85585L15.7301 11.9243L1.31574 0.903476C1.17475 0.79568 1.01137 0.761884 0.859586 0.784111L26.2936 25.1441C27.0086 25.829 26.5022 27 25.4909 27H1.18194C0.555061 27 0.046875 26.5133 0.046875 25.9129V1.05555Z\" fill=\"currentColor\"/>\u003C/g>",{"left":4,"top":4,"width":9,"height":10,"rotate":4,"vFlip":6,"hFlip":6,"body":11},1000,236,"\u003Cg fill=\"none\">\u003Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n    d=\"M193.68 38.2238C195.994 38.2238 197.87 40.0989 197.87 42.412V231.812C197.87 234.125 195.994 236 193.68 236H4.19013C1.87603 236 2.02305e-07 234.125 0 231.812V42.412C-2.02305e-07 40.0989 1.87603 38.2238 4.19013 38.2238H193.68ZM111.76 89.0072C111.685 87.9474 110.572 87.2905 109.608 87.7376L96.8872 93.641C95.7786 94.1554 95.702 95.7016 96.7545 96.3225L101.579 99.167C94.7045 109.365 90.5733 122.892 90.5732 137.642C90.5733 154.323 95.8569 169.439 104.416 179.945C105.301 181.032 106.9 181.196 107.987 180.311C109.075 179.426 109.238 177.828 108.353 176.741C100.621 167.25 95.6522 153.305 95.6521 137.642C95.6522 123.661 99.6138 111.051 105.963 101.754L110.456 104.403C111.508 105.024 112.826 104.21 112.74 102.991L111.76 89.0072ZM9.63194 136.286C9.14864 136.286 8.75684 136.678 8.75684 137.161C8.7569 137.644 9.14868 138.035 9.63194 138.035H17.2161C17.6993 138.035 18.0912 137.644 18.0912 137.161C18.0912 136.678 17.6994 136.286 17.2161 136.286H9.63194ZM22.6813 136.286C22.198 136.286 21.8062 136.678 21.8062 137.161C21.8063 137.644 22.1981 138.035 22.6813 138.035H30.2655C30.7487 138.035 31.1406 137.644 31.1406 137.161C31.1406 136.678 30.7488 136.286 30.2655 136.286H22.6813ZM35.7464 136.286C35.2631 136.286 34.8713 136.678 34.8713 137.161C34.8713 137.644 35.2631 138.035 35.7464 138.035H44.4973C44.9805 138.035 45.3724 137.644 45.3724 137.161C45.3724 136.678 44.9806 136.286 44.4973 136.286H35.7464ZM49.9977 136.286C49.5144 136.286 49.1226 136.678 49.1226 137.161C49.1226 137.644 49.5144 138.035 49.9977 138.035H57.5819C58.0651 138.035 58.4569 137.644 58.457 137.161C58.457 136.678 58.0651 136.286 57.5819 136.286H49.9977ZM63.0783 136.286C62.595 136.286 62.2032 136.678 62.2032 137.161C62.2033 137.644 62.5951 138.035 63.0783 138.035H70.6625C71.1457 138.035 71.5375 137.644 71.5376 137.161C71.5376 136.678 71.1457 136.286 70.6625 136.286H63.0783ZM76.1277 136.286C75.6444 136.286 75.2526 136.678 75.2526 137.161C75.2527 137.644 75.6445 138.035 76.1277 138.035H83.7119C84.1951 138.035 84.5869 137.644 84.587 137.161C84.587 136.678 84.1951 136.286 83.7119 136.286H76.1277ZM102.266 136.286C101.782 136.286 101.39 136.678 101.39 137.161C101.391 137.644 101.782 138.035 102.266 138.035H109.85C110.333 138.035 110.725 137.644 110.725 137.161C110.725 136.678 110.333 136.286 109.85 136.286H102.266ZM115.338 136.286C114.855 136.286 114.463 136.678 114.463 137.161C114.463 137.644 114.855 138.035 115.338 138.035H122.923C123.406 138.035 123.798 137.644 123.798 137.161C123.798 136.678 123.406 136.286 122.923 136.286H115.338ZM128.403 136.286C127.92 136.286 127.528 136.678 127.528 137.161C127.528 137.644 127.92 138.035 128.403 138.035H135.988C136.471 138.035 136.863 137.644 136.863 137.161C136.863 136.678 136.471 136.286 135.988 136.286H128.403ZM141.468 136.286C140.985 136.286 140.593 136.678 140.593 137.161C140.593 137.644 140.985 138.035 141.468 138.035H149.053C149.536 138.035 149.928 137.644 149.928 137.161C149.928 136.678 149.536 136.286 149.053 136.286H141.468ZM154.541 136.286C154.058 136.286 153.666 136.678 153.666 137.161C153.666 137.644 154.058 138.035 154.541 138.035H162.125C162.609 138.035 163 137.644 163.001 137.161C163.001 136.678 162.609 136.286 162.125 136.286H154.541ZM167.614 136.286C167.131 136.286 166.739 136.678 166.739 137.161C166.739 137.644 167.131 138.035 167.614 138.035H175.198C175.681 138.035 176.073 137.644 176.073 137.161C176.073 136.678 175.681 136.286 175.198 136.286H167.614ZM180.671 136.286C180.188 136.286 179.796 136.678 179.796 137.161C179.796 137.644 180.188 138.035 180.671 138.035H188.255C188.739 138.035 189.13 137.644 189.131 137.161C189.131 136.678 188.739 136.286 188.255 136.286H180.671Z\"\n    fill=\"currentColor\" />\n  \u003Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n    d=\"M444.85 38.2277C447.164 38.2277 449.04 40.1028 449.04 42.4159V132.928C449.04 135.241 447.164 137.116 444.85 137.116H255.36C253.046 137.116 251.17 135.241 251.17 132.928V42.4159C251.17 40.1028 253.046 38.2277 255.36 38.2277H444.85ZM361.96 125.388C361.618 125.046 361.064 125.046 360.722 125.388L354.534 131.572C354.192 131.914 354.192 132.468 354.534 132.81C354.876 133.151 355.43 133.151 355.772 132.81L361.96 126.624C362.301 126.283 362.301 125.73 361.96 125.388ZM371.047 116.311C370.705 115.969 370.15 115.969 369.809 116.311L364.446 121.671C364.104 122.012 364.104 122.567 364.446 122.908C364.788 123.249 365.342 123.25 365.684 122.908L371.047 117.548C371.388 117.207 371.388 116.652 371.047 116.311ZM380.124 107.246C379.782 106.904 379.227 106.904 378.885 107.246L373.523 112.606C373.181 112.948 373.181 113.502 373.523 113.844C373.864 114.185 374.419 114.185 374.761 113.844L380.124 108.483C380.465 108.142 380.465 107.587 380.124 107.246ZM385.736 65.8841C385.891 64.6727 384.622 63.7845 383.536 64.3434L371.069 70.7636C370.124 71.2504 369.96 72.5334 370.752 73.2424L381.2 82.5938C382.11 83.4081 383.561 82.8672 383.717 81.6557L384.393 76.3725C391.143 77.1933 398.567 80.7709 404.771 86.9711C411.124 93.3213 414.726 100.952 415.43 107.827C415.573 109.221 416.819 110.236 418.214 110.093C419.609 109.95 420.624 108.703 420.481 107.309C419.644 99.1317 415.435 90.4514 408.362 83.3817C401.466 76.489 393.038 72.3185 385.038 71.338L385.736 65.8841ZM389.2 98.1733C388.859 97.8319 388.304 97.8318 387.962 98.1733L382.6 103.534C382.258 103.875 382.258 104.429 382.6 104.771C382.941 105.112 383.496 105.112 383.838 104.771L389.2 99.4108C389.542 99.0693 389.542 98.5149 389.2 98.1733ZM398.262 89.1047C397.92 88.7633 397.365 88.7632 397.024 89.1047L391.661 94.4649C391.319 94.8065 391.319 95.3608 391.661 95.7024C392.002 96.0436 392.557 96.0438 392.899 95.7024L398.262 90.3421C398.603 90.0007 398.603 89.4463 398.262 89.1047ZM416.431 70.9616C416.089 70.6202 415.534 70.6201 415.193 70.9616L409.83 76.3218C409.488 76.6634 409.488 77.2177 409.83 77.5592C410.172 77.9005 410.726 77.9007 411.068 77.5592L416.431 72.199C416.772 71.8575 416.772 71.3032 416.431 70.9616ZM425.508 61.891C425.166 61.5496 424.611 61.5495 424.27 61.891L418.907 67.2512C418.565 67.5928 418.565 68.1471 418.907 68.4887C419.249 68.8299 419.803 68.8301 420.145 68.4887L425.508 63.1284C425.849 62.787 425.849 62.2326 425.508 61.891ZM434.569 52.8146C434.227 52.4731 433.673 52.4731 433.331 52.8146L427.968 58.1748C427.626 58.5163 427.627 59.0706 427.968 59.4122C428.31 59.7534 428.864 59.7537 429.206 59.4122L434.569 54.052C434.91 53.7105 434.91 53.1562 434.569 52.8146ZM443.638 43.7479C443.296 43.4065 442.742 43.4064 442.4 43.7479L437.037 49.1081C436.695 49.4496 436.696 50.004 437.037 50.3455C437.379 50.6868 437.933 50.687 438.275 50.3455L443.638 44.9853C443.98 44.6438 443.979 44.0895 443.638 43.7479Z\"\n    fill=\"currentColor\" />\n  \u003Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n    d=\"M684.066 38.2277C687.798 38.2281 689.667 42.7391 687.027 45.3773L596.473 135.889C595.687 136.675 594.621 137.116 593.51 137.116H506.335C504.021 137.116 502.145 135.241 502.145 132.928V42.4159C502.145 40.1028 504.021 38.2277 506.335 38.2277H684.066ZM514.603 124.566C514.261 124.224 513.707 124.224 513.365 124.566L507.178 130.751C506.836 131.093 506.836 131.646 507.178 131.988C507.519 132.329 508.073 132.329 508.415 131.988L514.603 125.803C514.945 125.462 514.945 124.908 514.603 124.566ZM523.689 115.491C523.348 115.15 522.794 115.15 522.452 115.491L517.09 120.852C516.748 121.193 516.748 121.747 517.09 122.088C517.431 122.43 517.985 122.43 518.327 122.088L523.689 116.728C524.031 116.386 524.031 115.833 523.689 115.491ZM532.102 65.8295C530.707 65.6872 529.46 66.7017 529.318 68.0957C529.175 69.4896 530.189 70.7355 531.584 70.8787C538.463 71.5825 546.096 75.1826 552.45 81.5329C558.723 87.8037 562.312 95.3226 563.079 102.13L557.738 102.392C556.518 102.452 555.865 103.855 556.607 104.827L565.115 115.969C565.76 116.814 567.051 116.751 567.611 115.847L574.992 103.928C575.635 102.889 574.848 101.555 573.628 101.615L568.161 101.882C568.161 101.878 568.162 101.874 568.161 101.871C567.324 93.6931 563.114 85.0124 556.041 77.9425C548.968 70.873 540.283 66.6668 532.102 65.8295ZM532.766 106.421C532.425 106.079 531.871 106.079 531.529 106.421L526.166 111.781C525.825 112.123 525.825 112.676 526.166 113.018C526.508 113.359 527.062 113.359 527.403 113.018L532.766 107.657C533.108 107.316 533.108 106.762 532.766 106.421ZM541.843 97.3445C541.501 97.003 540.948 97.003 540.606 97.3445L535.243 102.705C534.901 103.046 534.902 103.6 535.243 103.941C535.585 104.283 536.139 104.283 536.48 103.941L541.843 98.5809C542.185 98.2393 542.185 97.686 541.843 97.3445ZM550.92 88.2778C550.578 87.9363 550.025 87.9363 549.683 88.2778L544.32 93.638C543.978 93.9796 543.978 94.5329 544.32 94.8745C544.662 95.2161 545.215 95.2161 545.557 94.8745L550.92 89.5142C551.262 89.1727 551.262 88.6193 550.92 88.2778ZM569.066 70.1405C568.724 69.799 568.17 69.7991 567.829 70.1405L562.466 75.5008C562.124 75.8423 562.124 76.3956 562.466 76.7372C562.808 77.0788 563.361 77.0788 563.703 76.7372L569.066 71.377C569.407 71.0354 569.407 70.4821 569.066 70.1405ZM578.143 61.0699C577.801 60.7284 577.247 60.7285 576.906 61.0699L571.543 66.4302C571.201 66.7717 571.201 67.3251 571.543 67.6666C571.885 68.0082 572.438 68.0082 572.78 67.6666L578.143 62.3064C578.484 61.9648 578.484 61.4115 578.143 61.0699ZM587.219 51.9896C586.878 51.6481 586.324 51.6481 585.982 51.9896L580.62 57.3498C580.278 57.6914 580.278 58.2447 580.62 58.5863C580.961 58.9279 581.515 58.9279 581.857 58.5863L587.219 53.2261C587.561 52.8845 587.561 52.3312 587.219 51.9896ZM596.288 42.9249C595.947 42.5833 595.392 42.5833 595.05 42.9249L589.689 48.2851C589.347 48.6267 589.347 49.18 589.689 49.5216C590.03 49.863 590.584 49.8631 590.926 49.5216L596.288 44.1613C596.63 43.8198 596.63 43.2664 596.288 42.9249Z\"\n    fill=\"currentColor\" />\n  \u003Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n    d=\"M850.814 38.2277C854.547 38.2281 856.416 42.739 853.777 45.3773L763.223 135.889C762.437 136.674 761.371 137.116 760.26 137.116H673.176C669.443 137.116 667.574 132.605 670.213 129.966L760.768 39.4544C761.554 38.6692 762.62 38.2277 763.731 38.2277H850.814ZM761.338 121.8C760.855 121.8 760.463 122.191 760.463 122.674V131.13H762.213V122.674C762.213 122.191 761.821 121.8 761.338 121.8ZM761.338 108.971C760.855 108.971 760.463 109.363 760.463 109.846V118.301H762.213V109.846C762.213 109.363 761.821 108.971 761.338 108.971ZM761.338 96.1402C760.855 96.1406 760.463 96.5321 760.463 97.0149V105.47H762.213V97.0149C762.213 96.532 761.821 96.1404 761.338 96.1402ZM782.263 71.887C781.043 71.951 780.395 73.3571 781.139 74.3257L784.474 78.6631C779.115 82.951 771.242 85.7443 762.35 85.7444C753.366 85.7442 745.421 82.8944 740.059 78.5305C738.972 77.6461 737.373 77.8099 736.488 78.8961C735.602 79.983 735.766 81.582 736.853 82.467C743.231 87.6574 752.348 90.8207 762.35 90.8209C772.209 90.8208 781.205 87.746 787.568 82.6884L790.833 86.9341C791.577 87.9025 793.103 87.6391 793.479 86.4767L797.791 73.138C798.118 72.127 797.33 71.1017 796.268 71.1566L782.263 71.887ZM761.338 70.4847C760.855 70.4851 760.463 70.8767 760.463 71.3594V79.8147H762.213V71.3594C762.213 70.8766 761.821 70.485 761.338 70.4847ZM761.338 57.656C760.855 57.6564 760.463 58.048 760.463 58.5307V66.986H762.213V58.5307C762.213 58.0479 761.821 57.6563 761.338 57.656ZM761.338 44.8293C760.855 44.8297 760.463 45.2212 760.463 45.704V54.1592H762.213V45.704C762.213 45.2211 761.821 44.8295 761.338 44.8293Z\"\n    fill=\"currentColor\" />\n  \u003Cpath\n    d=\"M995.759 38.2277C999.53 38.228 1001.42 42.5171 998.752 45.0253L959.55 81.9005L905.796 41.5363C905.271 41.1418 904.662 41.0182 904.096 41.0994L997.485 130.319C1000.15 132.828 998.262 137.116 994.491 137.116H905.298C902.96 137.116 901.065 135.333 901.065 133.134V42.0941C901.065 42.0204 901.07 41.9483 901.079 41.8786C901.258 39.8345 903.079 38.2277 905.298 38.2277H995.759Z\"\n    fill=\"currentColor\" />\n  \u003Cpath\n    d=\"M505.873 0C506.657 4.57042e-05 507.307 0.195499 507.823 0.587023C508.338 0.969046 508.596 1.53802 508.596 2.29251C508.596 2.76034 508.467 3.19015 508.209 3.58162C507.951 3.96344 507.497 4.26401 506.848 4.48361V4.54114C507.65 4.67487 508.205 4.96191 508.51 5.4012C508.816 5.83087 508.969 6.31772 508.969 6.86193C508.969 7.74056 508.672 8.41851 508.08 8.89604C507.497 9.38304 506.733 9.62731 505.787 9.62738C504.861 9.62738 504.158 9.42172 503.68 9.0111C503.212 8.60054 502.935 8.08005 502.849 7.44993L503.881 7.10571L503.924 7.24028C504.035 7.54934 504.211 7.82925 504.454 8.07986C504.731 8.36635 505.166 8.50986 505.758 8.50989C506.465 8.50989 506.943 8.32772 507.191 7.9648C507.449 7.6019 507.579 7.20078 507.579 6.7615C507.579 6.2173 507.378 5.80683 506.977 5.52992C506.585 5.25295 505.93 5.10026 505.013 5.07161V4.15402C505.901 4.12537 506.489 3.92484 506.776 3.55237C507.062 3.18009 507.206 2.82242 507.206 2.47876C507.206 1.62801 506.752 1.17539 505.845 1.12237L505.658 1.11749C505.467 1.11752 505.242 1.14605 504.985 1.2033C504.736 1.25105 504.511 1.3274 504.31 1.43245L504.081 2.56457L503.05 2.44951L503.322 0.687461C503.666 0.49653 504.068 0.33454 504.526 0.200875C504.985 0.0671945 505.434 0 505.873 0Z\"\n    fill=\"currentColor\" />\n  \u003Cpath\n    d=\"M905.727 2.30616L904.638 2.4066L904.466 1.26083H901.428V3.72497C901.533 3.71544 901.643 3.71034 901.757 3.71034H902.086C902.755 3.71034 903.386 3.78668 903.979 3.93949C904.58 4.09229 905.068 4.38363 905.44 4.8132C905.822 5.23335 906.014 5.84949 906.014 6.66106C906.014 7.64468 905.722 8.38068 905.14 8.86776C904.557 9.36434 903.783 9.6127 902.818 9.61275C901.91 9.61275 901.213 9.40711 900.725 8.99648C900.248 8.59544 899.96 8.08007 899.865 7.44993L900.911 7.10571C901.007 7.49723 901.203 7.8271 901.499 8.09449C901.795 8.37131 902.211 8.50985 902.746 8.50989C903.395 8.50989 903.869 8.33787 904.165 7.99405C904.461 7.65981 904.609 7.22507 904.609 6.69031C904.609 5.87861 904.337 5.3625 903.792 5.14279C903.248 4.91361 902.612 4.79958 901.886 4.79955C901.695 4.79955 901.489 4.80365 901.27 4.8132C901.059 4.82275 900.854 4.83701 900.653 4.85611L900.224 4.44071V0.143343H905.569L905.727 2.30616Z\"\n    fill=\"currentColor\" />\n  \u003Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n    d=\"M765.49 6.04576H766.966L766.837 7.14862H765.49V9.48404H764.185V7.14862H759.857L759.713 6.04576L762.909 0.143343H765.49V6.04576ZM760.96 6.04576H764.185V1.26083H763.541L760.96 6.04576Z\"\n    fill=\"currentColor\" />\n  \u003Cpath d=\"M4.80573 6.47481H6.41154V7.60693H1.81068V6.47481H3.50235V1.27546H1.81068V0.143343H4.80573V6.47481Z\"\n    fill=\"currentColor\" />\n  \u003Cpath\n    d=\"M254.359 0C255.353 0 256.055 0.239186 256.466 0.716715C256.877 1.18447 257.083 1.68072 257.083 2.20573C257.083 2.85516 256.849 3.44346 256.38 3.96875C255.912 4.49397 255.348 4.96638 254.689 5.38657C254.039 5.79717 253.437 6.15968 252.883 6.47481H256.423L256.538 5.42948L257.599 5.51529L257.426 7.60693H251.407L251.292 6.58987C252.582 5.73032 253.638 4.98523 254.46 4.35489C255.281 3.71509 255.693 3.05632 255.693 2.37832C255.693 1.53787 255.166 1.11749 254.115 1.12237L254.115 1.11749C253.924 1.11754 253.695 1.14604 253.427 1.2033C253.16 1.25104 252.916 1.32238 252.697 1.41783L252.467 2.47876L251.45 2.3637L251.707 0.60165C252.118 0.401088 252.563 0.253475 253.041 0.15797C253.519 0.0529708 253.958 1.99446e-05 254.359 0Z\"\n    fill=\"currentColor\" />\u003C/g>",{"tile":13,"orbsWithOnlyMarkdownPages":259},{"id":14,"data":15,"type":16,"maxContentLevel":19,"version":20,"orbs":21},"5e0b7a6d-8ee0-4a0f-b18c-0ec455d86b2c",{"type":16,"title":17,"tagline":18},9,"APIs","How do developers use APIs?",3,1,[22,155],{"id":23,"data":24,"type":25,"version":20,"maxContentLevel":19,"pages":27},"80c2c362-89eb-40f7-8044-cf3b1a424d65",{"type":25,"title":26},2,"Understanding APIs",[28,47,92,120],{"id":29,"data":30,"type":20,"maxContentLevel":19,"version":20,"reviews":34},"cca597c3-070a-47eb-b138-6c362789919c",{"type":20,"title":31,"contentRole":25,"markdownContent":32,"audioMediaId":33},"What are APIs?","APIs, or Application Programming Interfaces, are a way for two unrelated applications to talk to each other. Just like databases, they're an essential part of backend development.\n\nYou can picture an API like a two-way tunnel that connects a pair of applications. A developer can send requests through this tunnel and receive responses in the opposite direction. For example, they might send a request to a weather website, and receive the latest forecasts. They could display those forecasts on a travel app they're building, instead of taking the time to build their own weather prediction system from scratch.\n\nThere are lots of types of API. Web APIs, for instance, allow the interaction between applications over the web, while Database APIs enable communication between an application and a database.","5fde6d9f-e2f9-47a3-9df0-269f60e2c11b",[35],{"id":36,"data":37,"type":38,"version":20,"maxContentLevel":19},"53b83476-4cbb-49e5-991b-8693bb739333",{"type":38,"reviewType":39,"spacingBehaviour":20,"clozeQuestion":40,"clozeWords":45},11,4,[41,42,43,44],"APIs, or Application Programming Interfaces, are a way for two unrelated applications to talk to each other.","Application Programming Interfaces, or APIs, facilitate communication between two unrelated applications.","Two unrelated applications can interact with each other through APIs, also known as Application Programming Interfaces.","Application Programming Interfaces (APIs) serve as a bridge for communication between two unrelated applications.",[46],"Application Programming Interfaces",{"id":48,"data":49,"type":20,"maxContentLevel":19,"version":20,"reviews":53},"fb310687-7bb2-47b6-9d14-3dfbed64a643",{"type":20,"title":50,"contentRole":25,"markdownContent":51,"audioMediaId":52},"HTTP","HTTP, or Hypertext Transfer Protocol, is a set of standards which takes care of any data exchange on the web. Understanding these standards is central to understanding APIs.\n\n ![Graph](image://5e962270-afcd-499e-afd2-16e6eaa564b7 \"HTTP. Image: Kulandru mor, CC0, via Wikimedia Commons\")\n\nHTTP relies on methods, also known as verbs. These are simple commands that define what type of action a client wants to perform on a resource. HTTP methods are universally recognized by web servers and clients, which is why they’re so useful, like a common language that every single web application speaks.\n\nSome of the most common HTTP methods are GET, POST, PUT, and DELETE.\n\nGET retrieves data, POST sends new data, PUT updates existing data, and DELETE removes data.","273760d3-18cf-4cfc-8d3d-1bb42ccbc699",[54,62,73],{"id":55,"data":56,"type":38,"version":20,"maxContentLevel":19},"195fc0cf-c80c-45bf-8cd5-106db828f33d",{"type":38,"reviewType":20,"spacingBehaviour":20,"activeRecallQuestion":57,"activeRecallAnswers":60},[58,59],"HTTP, or Hypertext Transfer Protocol, is a set of standards which takes care of what?","The set of standards known as HTTP, or Hypertext Transfer Protocol, takes care of what?",[61],"Data exchange on the web",{"id":63,"data":64,"type":38,"version":20,"maxContentLevel":19},"f2ecd127-88fc-4f8a-9be0-939038706f7a",{"type":38,"reviewType":19,"spacingBehaviour":20,"multiChoiceQuestion":65,"multiChoiceCorrect":67,"multiChoiceIncorrect":69},[66],"What are HTTP methods also known as?",[68],"Verbs",[70,71,72],"Nouns","Articles","Adverbs",{"id":74,"data":75,"type":38,"version":20,"maxContentLevel":19},"f526259d-cc22-4352-9e5b-b04573e70584",{"type":38,"reviewType":76,"spacingBehaviour":20,"matchPairsQuestion":77,"matchPairsPairs":79},6,[78],"Match the HTTP method with its function:",[80,83,86,89],{"left":81,"right":82,"direction":19},"GET","Retrieves data",{"left":84,"right":85,"direction":19},"POST","Sends new data",{"left":87,"right":88,"direction":19},"PUT","Updates existing data",{"left":90,"right":91,"direction":19},"DELETE","Removes data",{"id":93,"data":94,"type":20,"maxContentLevel":19,"version":20,"reviews":98},"96390d18-c375-4b91-8c45-151d9161abf0",{"type":20,"title":95,"contentRole":25,"markdownContent":96,"audioMediaId":97},"RESTful APIs","RESTful APIs are a common type of API. They were first pioneered by Roy Fielding – an influential computer scientist – in 2000.\n\nThe 'REST' stands for Representational State Transfer, which is a set of conventions that guide API design. The main difference between regular APIs, and the RESTful variety, is that a 'normal' API doesn't necessarily follow specific architectural guidelines, whereas every single RESTful API is standardized to REST principles.\n\n ![Graph](image://8cdae934-94fc-4476-97da-2e28640dfab3 \"RESTful API. Image: Ibrahim Wannous, CC BY-SA 4.0 \u003Chttps://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons\")\n\nFielding's work has become a cornerstone in the field of backend development, with RESTful APIs being widely adopted due to their scalability and accessibility.","485ef786-f662-4852-8339-e5506e31cfd2",[99,109],{"id":100,"data":101,"type":38,"version":20,"maxContentLevel":19},"7ebaeeae-e87f-4995-b2d8-a4db5da54f0d",{"type":38,"reviewType":20,"spacingBehaviour":20,"activeRecallQuestion":102,"activeRecallAnswers":107},[103,104,105,106],"What main advantage do RESTful APIs have over 'normal' APIs?","What is the primary benefit of using RESTful APIs instead of 'normal' APIs?","What is the key distinction that gives RESTful APIs an edge over 'normal' APIs?","What is the principal advantage that RESTful APIs offer compared to 'normal' APIs?",[108],"Standardization",{"id":110,"data":111,"type":38,"version":20,"maxContentLevel":19},"de28cde8-5f80-47ba-9b89-82c955943fad",{"type":38,"reviewType":19,"spacingBehaviour":20,"multiChoiceQuestion":112,"multiChoiceCorrect":114,"multiChoiceIncorrect":116},[113],"In the context of API design, what does 'REST' stand for?",[115],"Representational State Transfer",[117,118,119],"Relational State Transfer","Representational State Transition","Relational State Transition",{"id":121,"data":122,"type":20,"maxContentLevel":19,"version":20,"reviews":126},"4c242bfc-1408-4367-af94-30594c208d5a",{"type":20,"title":123,"contentRole":25,"markdownContent":124,"audioMediaId":125},"RESTful constraints","RESTful architecture has several constraints, which help to make sure that RESTful APIs are consistent and scalable.\n\nFor example, the client making the API request, and the server receiving the API request, must be separate entities. This request must also be stateless, which means the server doesn't need to store any information when it receives the client's request.\n\nThere also needs to be a uniform interface – this means a standardized approach to communication, no matter what type of client and server are trying to interact. A key part of this is using HTTP methods to create, read, update, and delete data. These methods, also known as CRUD operations, form the basis of any interactive application.","98ec9db0-3918-41c8-ac64-985bbe08e650",[127,138,147],{"id":128,"data":129,"type":38,"version":20,"maxContentLevel":19},"8ba32fc4-b247-4dbc-924e-c5ac88832efd",{"type":38,"reviewType":19,"spacingBehaviour":20,"multiChoiceQuestion":130,"multiChoiceCorrect":132,"multiChoiceIncorrect":134},[131],"In RESTful architecture, the client making the API request, and the server receiving the API request, must be:",[133],"Separate entities",[135,136,137],"Shared entities","Interchangeable","Interdependent",{"id":139,"data":140,"type":38,"version":20,"maxContentLevel":19},"b0b11f1d-6e8d-4daa-b4fb-7719c2a70c63",{"type":38,"reviewType":20,"spacingBehaviour":20,"activeRecallQuestion":141,"activeRecallAnswers":145},[142,143,144],"In RESTful architecture, HTTP methods are used to create, read, update, and delete data. What are these methods also known as?","What term is commonly used to refer to the actions of creating, reading, updating, and deleting data in RESTful architecture?","What is the collective term for the HTTP methods that allow data to be created, read, updated, and deleted in RESTful architecture?",[146],"CRUD operations",{"id":148,"data":149,"type":38,"version":20,"maxContentLevel":19},"b23bdd46-1eb0-4d42-8b49-3ca65a73f444",{"type":38,"reviewType":39,"spacingBehaviour":20,"clozeQuestion":150,"clozeWords":153},[151,152],"In RESTful architecture, the request must be stateless, meaning the server doesn't store any information.","A request in RESTful architecture must always be stateless, so the server doesn't need to store any information.",[154],"stateless",{"id":156,"data":157,"type":25,"version":20,"maxContentLevel":19,"pages":159},"e5556106-50a2-4e87-9e95-85ea4afc56f7",{"type":25,"title":158},"API Endpoints and Implementation",[160,178,209,226,244],{"id":161,"data":162,"type":20,"maxContentLevel":19,"version":20,"reviews":166},"7991c4ab-78e1-41e5-bc3d-a0459fe01092",{"type":20,"title":163,"contentRole":25,"markdownContent":164,"audioMediaId":165},"API endpoints","APIs rely on something called endpoints. If the API itself is a tunnel, then the endpoints are doors on the side of an application that this tunnel is able to link to.\n\nIn more literal terms, endpoints are URLs – or Uniform Resource Locators – which function as touchpoints for other applications to access. For example, a government website might have an endpoint called /public-holidays. If a backend developer built a calendar app, they could send a request to /public-holidays, retrieve that data, then display it on their app.\n\nOften, a developer will share documentation that lets other people know how to find their application's endpoints.","91b1a65b-e0c4-45c4-8948-c18c8b8580cd",[167],{"id":168,"data":169,"type":38,"version":20,"maxContentLevel":19},"8edd88cf-f438-4515-aae3-9bbcd82f562e",{"type":38,"reviewType":19,"spacingBehaviour":20,"multiChoiceQuestion":170,"multiChoiceCorrect":172,"multiChoiceIncorrect":174},[171],"In the context of APIs, what is the name of the URLs which function as touchpoints for other applications to access?",[173],"Endpoints",[175,176,177],"Methods","Doorways","Operators",{"id":179,"data":180,"type":20,"maxContentLevel":19,"version":20,"reviews":184},"39cb5178-ec13-4cd7-b20f-1e511b7f40e8",{"type":20,"title":181,"contentRole":25,"markdownContent":182,"audioMediaId":183},"Implementing endpoints","A Backend Developer might find themselves accessing other people's endpoints – but they'll also find themselves designing endpoints of their own.\n\nTo implement API endpoints, they will need to write code that tells the server how it needs to react when it receives various requests. For example, for a GET request to an endpoint, a developer would write the logic that fetches data from a database or another source, and prepares the data for the response.\n\n ![Graph](image://e348d0d9-6350-4011-bd94-7b94491c6a84 \"GET request. Image: Rplano, CC BY-SA 4.0 \u003Chttps://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons\")\n\nEach API endpoint should have a specific URL path, for example /tasks. Other people will run into a 404 error if their client sends a request to a path that does not exist.","0d53a990-3fbd-4102-8bd0-7ad2c9b0a528",[185,198],{"id":186,"data":187,"type":38,"version":20,"maxContentLevel":19},"03d3406d-213a-4324-b861-4a99b60bd51e",{"type":38,"reviewType":19,"spacingBehaviour":20,"multiChoiceQuestion":188,"multiChoiceCorrect":192,"multiChoiceIncorrect":194},[189,190,191],"Each API endpoint should have a specific URL path, for example:","Can you provide an example of a specific URL path that an API endpoint should have?","What is a typical example of a URL path for an API endpoint?",[193],"/tasks",[195,196,197],".tasks","(tasks)","!tasks",{"id":199,"data":200,"type":38,"version":20,"maxContentLevel":19},"e033e626-83de-4e36-ab99-311bd5c6a2e3",{"type":38,"reviewType":19,"spacingBehaviour":20,"multiChoiceQuestion":201,"multiChoiceCorrect":203,"multiChoiceIncorrect":205},[202],"What type of error will a client get if they send a request to a URL path that does not exist?",[204],"404 error",[206,207,208],"303 error","202 error","101 error",{"id":210,"data":211,"type":20,"maxContentLevel":19,"version":20,"reviews":215},"c60953f8-a52a-472d-ba36-8258546d0ae8",{"type":20,"title":212,"contentRole":25,"markdownContent":213,"audioMediaId":214},"Best practices","The ideal API is high quality, performs under high load, and is easy to maintain.\n\nBest practices to develop such APIs include using RESTful principles. It’s also a good idea to design intuitive endpoints, which makes the API easy to understand even for people who didn’t develop it. For example, imagine you are looking at an endpoint that reads like:\n\n*GET /api/v1/xyp987*\n\nBy contrast, check out this endpoint:\n\n*GET /api/v1/products*\n\nThe second one is much more clear.","bd922de9-1247-4b0c-b5c9-7f74ca4d438b",[216],{"id":217,"data":218,"type":38,"version":20,"maxContentLevel":19},"56733168-3ca7-4c27-8620-cd91a9287500",{"type":38,"reviewType":25,"spacingBehaviour":20,"binaryQuestion":219,"binaryCorrect":222,"binaryIncorrect":224},[220,221],"Developers should design intuitive endpoints. Which of these is better?","Which of these endpoint designs aligns with the best practices for API development?",[223],"GET /api/v1/products",[225],"GET /api/v1/xyp987",{"id":227,"data":228,"type":20,"maxContentLevel":19,"version":20,"reviews":232},"8b8ef633-f58a-4969-806a-d936243d49be",{"type":20,"title":229,"contentRole":25,"markdownContent":230,"audioMediaId":231},"Testing endpoints","It’s critical for a developer to test their endpoints, and make sure the response is correct.\n\nAPI testing should cover functionality, performance, security, and error conditions. Functionality testing checks that the API works as expected, performance testing checks how the API performs under load, security testing checks for vulnerabilities, and error condition testing checks how the API handles errors.\n\nThis can be done automatically using testing frameworks, or manually using tools like Postman. Manual testing involves sending requests to the API endpoints and checking the responses by hand.","fee61465-f9bf-4f69-8125-8ce111c7a869",[233],{"id":234,"data":235,"type":38,"version":20,"maxContentLevel":19},"ae6de741-6c21-433c-8735-f023d2a9f566",{"type":38,"reviewType":19,"spacingBehaviour":20,"multiChoiceQuestion":236,"multiChoiceCorrect":238,"multiChoiceIncorrect":240},[237],"What tool can be used for manual testing of API endpoints?",[239],"Postman",[241,242,243],"Deliverer","Receiver","Mailman",{"id":245,"data":246,"type":20,"maxContentLevel":19,"version":20,"reviews":250},"5af03448-89a7-4773-87c4-0c0d20a7a8cb",{"type":20,"title":247,"contentRole":25,"markdownContent":248,"audioMediaId":249},"API frameworks","Luckily for developers, it’s no longer necessary to write all their APIs from scratch. Many languages have frameworks that provide a structured way to develop APIs, offering pre-built functions and libraries.\n\nChoosing a framework for API development depends on factors such as the programming language, the complexity of the project, and the team's familiarity with the framework.\n\nFor example, if a project requires complex functionality and scalability, a developer might opt for a more robust and feature-rich framework like Ruby on Rails, Django REST framework, or ASP.NET Core.\n\n ![Graph](image://eac2a3b2-ce1f-491d-8d67-86193b2e97ad \"Ruby on Rails. Image: samatoms, CC BY-SA 4.0 \u003Chttps://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons\")","a432e27a-cef1-49b5-a5d2-3c837ef29e76",[251],{"id":252,"data":253,"type":38,"version":20,"maxContentLevel":19},"7a86348c-1e68-4841-84af-3913cb7ac994",{"type":38,"reviewType":39,"spacingBehaviour":20,"clozeQuestion":254,"clozeWords":257},[255,256],"Many programming languages have frameworks that provide a structured way to develop APIs.","Many programming languages have frameworks that help with the process of creating APIs.",[258],"frameworks",[260,378],{"id":23,"data":24,"type":25,"version":20,"maxContentLevel":19,"pages":261},[262,289,326,356],{"id":29,"data":30,"type":20,"maxContentLevel":19,"version":20,"reviews":34,"parsed":263},{"data":264,"body":267,"toc":287},{"title":265,"description":266},"","APIs, or Application Programming Interfaces, are a way for two unrelated applications to talk to each other. Just like databases, they're an essential part of backend development.",{"type":268,"children":269},"root",[270,277,282],{"type":271,"tag":272,"props":273,"children":274},"element","p",{},[275],{"type":276,"value":266},"text",{"type":271,"tag":272,"props":278,"children":279},{},[280],{"type":276,"value":281},"You can picture an API like a two-way tunnel that connects a pair of applications. A developer can send requests through this tunnel and receive responses in the opposite direction. For example, they might send a request to a weather website, and receive the latest forecasts. They could display those forecasts on a travel app they're building, instead of taking the time to build their own weather prediction system from scratch.",{"type":271,"tag":272,"props":283,"children":284},{},[285],{"type":276,"value":286},"There are lots of types of API. Web APIs, for instance, allow the interaction between applications over the web, while Database APIs enable communication between an application and a database.",{"title":265,"searchDepth":25,"depth":25,"links":288},[],{"id":48,"data":49,"type":20,"maxContentLevel":19,"version":20,"reviews":53,"parsed":290},{"data":291,"body":293,"toc":324},{"title":265,"description":292},"HTTP, or Hypertext Transfer Protocol, is a set of standards which takes care of any data exchange on the web. Understanding these standards is central to understanding APIs.",{"type":268,"children":294},[295,299,309,314,319],{"type":271,"tag":272,"props":296,"children":297},{},[298],{"type":276,"value":292},{"type":271,"tag":272,"props":300,"children":301},{},[302],{"type":271,"tag":303,"props":304,"children":308},"img",{"alt":305,"src":306,"title":307},"Graph","image://5e962270-afcd-499e-afd2-16e6eaa564b7","HTTP. Image: Kulandru mor, CC0, via Wikimedia Commons",[],{"type":271,"tag":272,"props":310,"children":311},{},[312],{"type":276,"value":313},"HTTP relies on methods, also known as verbs. These are simple commands that define what type of action a client wants to perform on a resource. HTTP methods are universally recognized by web servers and clients, which is why they’re so useful, like a common language that every single web application speaks.",{"type":271,"tag":272,"props":315,"children":316},{},[317],{"type":276,"value":318},"Some of the most common HTTP methods are GET, POST, PUT, and DELETE.",{"type":271,"tag":272,"props":320,"children":321},{},[322],{"type":276,"value":323},"GET retrieves data, POST sends new data, PUT updates existing data, and DELETE removes data.",{"title":265,"searchDepth":25,"depth":25,"links":325},[],{"id":93,"data":94,"type":20,"maxContentLevel":19,"version":20,"reviews":98,"parsed":327},{"data":328,"body":330,"toc":354},{"title":265,"description":329},"RESTful APIs are a common type of API. They were first pioneered by Roy Fielding – an influential computer scientist – in 2000.",{"type":268,"children":331},[332,336,341,349],{"type":271,"tag":272,"props":333,"children":334},{},[335],{"type":276,"value":329},{"type":271,"tag":272,"props":337,"children":338},{},[339],{"type":276,"value":340},"The 'REST' stands for Representational State Transfer, which is a set of conventions that guide API design. The main difference between regular APIs, and the RESTful variety, is that a 'normal' API doesn't necessarily follow specific architectural guidelines, whereas every single RESTful API is standardized to REST principles.",{"type":271,"tag":272,"props":342,"children":343},{},[344],{"type":271,"tag":303,"props":345,"children":348},{"alt":305,"src":346,"title":347},"image://8cdae934-94fc-4476-97da-2e28640dfab3","RESTful API. Image: Ibrahim Wannous, CC BY-SA 4.0 \u003Chttps://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons",[],{"type":271,"tag":272,"props":350,"children":351},{},[352],{"type":276,"value":353},"Fielding's work has become a cornerstone in the field of backend development, with RESTful APIs being widely adopted due to their scalability and accessibility.",{"title":265,"searchDepth":25,"depth":25,"links":355},[],{"id":121,"data":122,"type":20,"maxContentLevel":19,"version":20,"reviews":126,"parsed":357},{"data":358,"body":360,"toc":376},{"title":265,"description":359},"RESTful architecture has several constraints, which help to make sure that RESTful APIs are consistent and scalable.",{"type":268,"children":361},[362,366,371],{"type":271,"tag":272,"props":363,"children":364},{},[365],{"type":276,"value":359},{"type":271,"tag":272,"props":367,"children":368},{},[369],{"type":276,"value":370},"For example, the client making the API request, and the server receiving the API request, must be separate entities. This request must also be stateless, which means the server doesn't need to store any information when it receives the client's request.",{"type":271,"tag":272,"props":372,"children":373},{},[374],{"type":276,"value":375},"There also needs to be a uniform interface – this means a standardized approach to communication, no matter what type of client and server are trying to interact. A key part of this is using HTTP methods to create, read, update, and delete data. These methods, also known as CRUD operations, form the basis of any interactive application.",{"title":265,"searchDepth":25,"depth":25,"links":377},[],{"id":156,"data":157,"type":25,"version":20,"maxContentLevel":19,"pages":379},[380,402,432,474,496],{"id":161,"data":162,"type":20,"maxContentLevel":19,"version":20,"reviews":166,"parsed":381},{"data":382,"body":384,"toc":400},{"title":265,"description":383},"APIs rely on something called endpoints. If the API itself is a tunnel, then the endpoints are doors on the side of an application that this tunnel is able to link to.",{"type":268,"children":385},[386,390,395],{"type":271,"tag":272,"props":387,"children":388},{},[389],{"type":276,"value":383},{"type":271,"tag":272,"props":391,"children":392},{},[393],{"type":276,"value":394},"In more literal terms, endpoints are URLs – or Uniform Resource Locators – which function as touchpoints for other applications to access. For example, a government website might have an endpoint called /public-holidays. If a backend developer built a calendar app, they could send a request to /public-holidays, retrieve that data, then display it on their app.",{"type":271,"tag":272,"props":396,"children":397},{},[398],{"type":276,"value":399},"Often, a developer will share documentation that lets other people know how to find their application's endpoints.",{"title":265,"searchDepth":25,"depth":25,"links":401},[],{"id":179,"data":180,"type":20,"maxContentLevel":19,"version":20,"reviews":184,"parsed":403},{"data":404,"body":406,"toc":430},{"title":265,"description":405},"A Backend Developer might find themselves accessing other people's endpoints – but they'll also find themselves designing endpoints of their own.",{"type":268,"children":407},[408,412,417,425],{"type":271,"tag":272,"props":409,"children":410},{},[411],{"type":276,"value":405},{"type":271,"tag":272,"props":413,"children":414},{},[415],{"type":276,"value":416},"To implement API endpoints, they will need to write code that tells the server how it needs to react when it receives various requests. For example, for a GET request to an endpoint, a developer would write the logic that fetches data from a database or another source, and prepares the data for the response.",{"type":271,"tag":272,"props":418,"children":419},{},[420],{"type":271,"tag":303,"props":421,"children":424},{"alt":305,"src":422,"title":423},"image://e348d0d9-6350-4011-bd94-7b94491c6a84","GET request. Image: Rplano, CC BY-SA 4.0 \u003Chttps://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons",[],{"type":271,"tag":272,"props":426,"children":427},{},[428],{"type":276,"value":429},"Each API endpoint should have a specific URL path, for example /tasks. Other people will run into a 404 error if their client sends a request to a path that does not exist.",{"title":265,"searchDepth":25,"depth":25,"links":431},[],{"id":210,"data":211,"type":20,"maxContentLevel":19,"version":20,"reviews":215,"parsed":433},{"data":434,"body":436,"toc":472},{"title":265,"description":435},"The ideal API is high quality, performs under high load, and is easy to maintain.",{"type":268,"children":437},[438,442,447,455,460,467],{"type":271,"tag":272,"props":439,"children":440},{},[441],{"type":276,"value":435},{"type":271,"tag":272,"props":443,"children":444},{},[445],{"type":276,"value":446},"Best practices to develop such APIs include using RESTful principles. It’s also a good idea to design intuitive endpoints, which makes the API easy to understand even for people who didn’t develop it. For example, imagine you are looking at an endpoint that reads like:",{"type":271,"tag":272,"props":448,"children":449},{},[450],{"type":271,"tag":451,"props":452,"children":453},"em",{},[454],{"type":276,"value":225},{"type":271,"tag":272,"props":456,"children":457},{},[458],{"type":276,"value":459},"By contrast, check out this endpoint:",{"type":271,"tag":272,"props":461,"children":462},{},[463],{"type":271,"tag":451,"props":464,"children":465},{},[466],{"type":276,"value":223},{"type":271,"tag":272,"props":468,"children":469},{},[470],{"type":276,"value":471},"The second one is much more clear.",{"title":265,"searchDepth":25,"depth":25,"links":473},[],{"id":227,"data":228,"type":20,"maxContentLevel":19,"version":20,"reviews":232,"parsed":475},{"data":476,"body":478,"toc":494},{"title":265,"description":477},"It’s critical for a developer to test their endpoints, and make sure the response is correct.",{"type":268,"children":479},[480,484,489],{"type":271,"tag":272,"props":481,"children":482},{},[483],{"type":276,"value":477},{"type":271,"tag":272,"props":485,"children":486},{},[487],{"type":276,"value":488},"API testing should cover functionality, performance, security, and error conditions. Functionality testing checks that the API works as expected, performance testing checks how the API performs under load, security testing checks for vulnerabilities, and error condition testing checks how the API handles errors.",{"type":271,"tag":272,"props":490,"children":491},{},[492],{"type":276,"value":493},"This can be done automatically using testing frameworks, or manually using tools like Postman. Manual testing involves sending requests to the API endpoints and checking the responses by hand.",{"title":265,"searchDepth":25,"depth":25,"links":495},[],{"id":245,"data":246,"type":20,"maxContentLevel":19,"version":20,"reviews":250,"parsed":497},{"data":498,"body":500,"toc":524},{"title":265,"description":499},"Luckily for developers, it’s no longer necessary to write all their APIs from scratch. Many languages have frameworks that provide a structured way to develop APIs, offering pre-built functions and libraries.",{"type":268,"children":501},[502,506,511,516],{"type":271,"tag":272,"props":503,"children":504},{},[505],{"type":276,"value":499},{"type":271,"tag":272,"props":507,"children":508},{},[509],{"type":276,"value":510},"Choosing a framework for API development depends on factors such as the programming language, the complexity of the project, and the team's familiarity with the framework.",{"type":271,"tag":272,"props":512,"children":513},{},[514],{"type":276,"value":515},"For example, if a project requires complex functionality and scalability, a developer might opt for a more robust and feature-rich framework like Ruby on Rails, Django REST framework, or ASP.NET Core.",{"type":271,"tag":272,"props":517,"children":518},{},[519],{"type":271,"tag":303,"props":520,"children":523},{"alt":305,"src":521,"title":522},"image://eac2a3b2-ce1f-491d-8d67-86193b2e97ad","Ruby on Rails. Image: samatoms, CC BY-SA 4.0 \u003Chttps://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons",[],{"title":265,"searchDepth":25,"depth":25,"links":525},[],{"left":4,"top":4,"width":527,"height":527,"rotate":4,"vFlip":6,"hFlip":6,"body":528},24,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"/>",{"left":4,"top":4,"width":527,"height":527,"rotate":4,"vFlip":6,"hFlip":6,"body":530},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"/>",1778179453882]