﻿
{"id":16409,"date":"2020-06-28T23:18:16","date_gmt":"2020-06-28T23:18:16","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=16409"},"modified":"2020-06-28T23:18:16","modified_gmt":"2020-06-28T23:18:16","slug":"microservice-mimarisinde-api-gateway-nedir","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/microservice-mimarisinde-api-gateway-nedir\/","title":{"rendered":"Microservice Mimarisinde API Gateway Nedir?"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde <a href=\"https:\/\/www.gencayyildiz.com\/blog\/monolithic-ve-microservice-mimariler-nelerdir\/\" rel=\"noopener noreferrer\" target=\"_blank\">microservice<\/a> mimarisiyle tasarlanan uygulamalarda clientlar\u0131n par\u00e7al\u0131 servislere do\u011frudan eri\u015ferek karma\u015f\u0131kl\u0131\u011f\u0131n ve daha da \u00f6nemlisi g\u00fcvenlik ile ilgili risklerin meydana gelmesini engellemek i\u00e7in bir cephe misali \u00f6nc\u00fc g\u00f6revi g\u00f6ren API yap\u0131lanmas\u0131 olan API Gateway \u00fczerine konu\u015fuyor olaca\u011f\u0131z.<\/p>\n<p><em><strong>Nedir bu API Gateway?<\/strong><\/em><br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/06\/Microservice-Mimarisinde-API-Gateway-Nedir.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/06\/Microservice-Mimarisinde-API-Gateway-Nedir-300x179.png\" alt=\"Microservice Mimarisinde API Gateway Nedir\" width=\"300\" height=\"179\" class=\"alignleft size-medium wp-image-16412\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/06\/Microservice-Mimarisinde-API-Gateway-Nedir-300x179.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/06\/Microservice-Mimarisinde-API-Gateway-Nedir-768x459.png 768w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/06\/Microservice-Mimarisinde-API-Gateway-Nedir.png 771w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nSon y\u0131llarda duymaya al\u0131\u015ft\u0131\u011f\u0131m\u0131z internet of things(nesnelerin interneti) olay\u0131n\u0131n artmas\u0131 \u00fczerine, kullan\u0131lan API&#8217;lar\u0131n y\u00f6netiminden do\u011fan zorluklara kar\u015f\u0131 Amazon Web Service taraf\u0131ndan getirilen \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<p>\u00d6zellikle microservice yap\u0131lanmalar\u0131nda kullan\u0131lan kompleks servislerin clientlara kar\u015f\u0131 tek elden a\u00e7\u0131lmas\u0131n\u0131 sa\u011flayan ve b\u00f6ylece giri\u015f paragraf\u0131nda da de\u011findi\u011fimiz gibi bir cephe niteli\u011finde olan bir API&#8217;d\u0131r. Clientlar bu API \u00fczerinden g\u00fcvenlik ve yetkilendirme kontrollerinden ge\u00e7erler ve hedefteki microservice&#8217;i API Gateway arac\u0131l\u0131\u011f\u0131yla tetikleyerek sonu\u00e7 al\u0131rlar.<\/p>\n<p>API Gateway, client ile s\u0131k\u0131 ba\u011fl\u0131(tightly coupled) bir ba\u011f yaratt\u0131\u011f\u0131 i\u00e7in ele\u015ftirilir ancak avantajlar\u0131 bu dezavantaj\u0131 ciddi manada g\u00f6lgelemekte oldu\u011fundan bu durum g\u00f6z ard\u0131 edilebilmektedir.<\/p>\n<blockquote><p><strong>API Gateway&#8217;in temel i\u015flevi clienttan iste\u011fi al\u0131p uygun servise iletmesidir.<\/strong><\/p><\/blockquote>\n<p><strong style=\"color:#e83e8c;\">API Gateway \u0130le Neler Yap\u0131labilir?<\/strong><\/p>\n<ul>\n<li><strong>Authentication ve Authorization<\/strong><br \/>\n\u0130\u015flevsel sorumlulu\u011fu par\u00e7a par\u00e7a \u00fcstlenen servislere eri\u015fim api gateway \u00fczerinden dolayl\u0131 yolla olaca\u011f\u0131ndan dolay\u0131 kimlik ve yetki do\u011frulama operasyonlar\u0131n\u0131 sadece api gateway&#8217;de yap\u0131land\u0131r\u0131labilir.\n<\/li>\n<li><strong>Logging<\/strong><br \/>\nServislere yap\u0131lan istekler hakk\u0131nda detayl\u0131 loglamalar ger\u00e7ekle\u015ftirilebilir ve b\u00f6ylece hangi servis, kim taraf\u0131ndan, ne kadar yo\u011funlukta i\u015flevsellik g\u00f6steriyor vs. gibi istatistiksel bilgiler edinilebilir.\n<\/li>\n<li><strong>Response Caching<\/strong><br \/>\nAPI gateway \u00fczerinden servislere gelen talepler neticesinde \u00fcretilen \u00e7\u0131kt\u0131lar\u0131 cacheleyebilir ve b\u00f6ylece servis maliyetleri d\u00fc\u015f\u00fcr\u00fclebilir.\n<\/li>\n<li><strong>Routing<\/strong><br \/>\nServislerin adreslerini farkl\u0131 \u015fekilde kaps\u00fcllenebilir ve bu kaps\u00fcl \u00fczerinden clientlar ilgili esas routelara y\u00f6nlendirilebilir.\n<\/li>\n<\/ul>\n<p>Yukar\u0131daki maddelere bakt\u0131\u011f\u0131m\u0131zda API Gateway ile yaz\u0131l\u0131mda problemlerin ve i\u015flevsel operasyonlar\u0131n yap\u0131ld\u0131\u011f\u0131 esas kod merkezlerinin d\u0131\u015f\u0131nda kalan ve problem alan\u0131ndan ba\u011f\u0131ms\u0131z k\u0131s\u0131mlar\u0131 ilgilendiren cross cutting concern ismi verilen alanlar\u0131 ve i\u015flemleri y\u00f6netebildi\u011fimizi g\u00f6rebilmekteyiz.<\/p>\n<p><strong style=\"color:#e83e8c;\">Peki API Gateway&#8217;in Avantaj ve Dezavantajlar\u0131 Nelerdir?<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th style=\"width:50%;\">Avantajlar\u0131<\/th>\n<th>Dezavantajlar\u0131<\/th>\n<\/tr>\n<\/thead>\n<tbody style=\"font-size:11px;\">\n<tr>\n<td style=\"text-align:left;vertical-align: text-top;\">\n<ul>\n<li>Clientt\u0131n ihtiyac\u0131 do\u011frultusunda birden fazla servis taraf\u0131ndan \u00fcretilecek olan datay\u0131 tek bir request &#8211; response ile \u00fcretilmesini sa\u011flayarak daha az maliyetli bir kullan\u0131c\u0131 deneyimi ortaya koyabilir.<\/li>\n<li>Authentication, authorization, logging, security, routing vs. gibi cross cutting concern kavramlar\u0131n\u0131n tek elden y\u00f6netilmesini sa\u011flayabilir.<\/li>\n<li>Ve en \u00f6nemlisi clientlar\u0131, uygulaman\u0131n microservislere nas\u0131l b\u00f6l\u00fcnd\u00fc\u011f\u00fc hususunda d\u00fc\u015f\u00fcnmekten izole eder.<\/li>\n<\/ul>\n<\/td>\n<td style=\"text-align:left;vertical-align: text-top;\">\n<ul>\n<li>API gateway, ekstradan bir katman olu\u015fturaca\u011f\u0131 i\u00e7in istek neticesinde i\u015flevsel a\u00e7\u0131dan g\u00f6zard\u0131 edilebilir bir farkla s\u00fcrenin artmas\u0131na sebep olabilir.<\/li>\n<li>API gateway; geli\u015ftirici, da\u011f\u0131t\u0131m ve bak\u0131m gerektiren \u015fahs\u0131na m\u00fcnhas\u0131r bir katmand\u0131r.<\/li>\n<li>T\u00fcm servislere eri\u015fim api gateway \u00fczerinden oldu\u011fu i\u00e7in herhangi bir \u00e7\u00f6k\u00fcnt\u00fc yahut kesinti durumunda t\u00fcm sistem aksakl\u0131\u011fa u\u011frayabilir.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde microservice mimarisiyle tasarlanan uygulamalarda clientlar\u0131n par\u00e7al\u0131 servislere do\u011frudan eri\u015ferek karma\u015f\u0131kl\u0131\u011f\u0131n ve daha da \u00f6nemlisi g\u00fcvenlik ile ilgili risklerin meydana gelmesini engellemek i\u00e7in bir cephe misali \u00f6nc\u00fc g\u00f6revi g\u00f6ren API yap\u0131lanmas\u0131 olan&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":16412,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3573],"tags":[3579,3580,3584,3581,3575,3289,3582,3583],"class_list":["post-16409","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microservices","tag-api-gateway","tag-api-gateway-nedir","tag-cross-cutting-concern","tag-internet-of-things","tag-microservice","tag-microservices","tag-nesnelerin-interneti","tag-tightly-coupled"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/16409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=16409"}],"version-history":[{"count":15,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/16409\/revisions"}],"predecessor-version":[{"id":16425,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/16409\/revisions\/16425"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/16412"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=16409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=16409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=16409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}