{"id":301,"date":"2021-06-14T17:24:13","date_gmt":"2021-06-14T17:24:13","guid":{"rendered":"https:\/\/okankaradag.com\/?p=301"},"modified":"2022-02-06T21:00:26","modified_gmt":"2022-02-06T21:00:26","slug":"dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi","status":"publish","type":"post","link":"https:\/\/okankaradag.com\/en\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi","title":{"rendered":"Project Making with API Gateway and Microservice in Asp.Net"},"content":{"rendered":"<p>Hi, We'll write two microservices in this post and managing with api gateway<\/p>\n\n\n\n<h5 id=\"api-gateway-nedir\">What is Api Gateway?<\/h5>\n\n\n\n<p>An API gateway is an API management tool that sits between a client and a collection of backend services<\/p>\n\n\n\n<h5 id=\"api-gateway-ne-yapar\">How to work?<\/h5>\n\n\n\n<p class=\" translation-block\">An Api gateway routes requests from <strong>client<\/strong> to available <strong>microservices<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"771\" height=\"461\" data-id=\"302\"  src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/ApiGateway.png\" alt=\"\" class=\"wp-image-302\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/ApiGateway.png 771w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/ApiGateway-300x179.png 300w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/ApiGateway-768x459.png 768w\" sizes=\"(max-width: 771px) 100vw, 771px\" \/><\/figure>\n<\/figure>\n\n\n\n<h5 id=\"ornek-bir-proje-yapimi\">A Sample Project Making<\/h5>\n\n\n\n<p>We will write two microservices in the visual studio environment and route them with the api gateway.<\/p>\n\n\n\n<p class=\" translation-block\">Let's open as blank project and add <strong>services <\/strong>folder and <strong>ApiGateway as .net 5.0 api<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"429\" height=\"291\" data-id=\"303\"  src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Screenshot_87.png\" alt=\"Api-gateway-solution\" class=\"wp-image-303\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Screenshot_87.png 429w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Screenshot_87-300x203.png 300w\" sizes=\"(max-width: 429px) 100vw, 429px\" \/><\/figure>\n<\/figure>\n\n\n\n<p class=\" translation-block\">Let's add two project named <strong>UserService <\/strong>and <strong>BookService <\/strong>to the services folder. Each other  will be entirely independent these services  which designed as <strong>Domain Driven Design<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped\">\n<figure class=\"wp-block-image size-large\"><img data-id=\"305\"  src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/ApiGateway_Services_DDD.png\" alt=\"\" class=\"wp-image-305\"\/><\/figure>\n<\/figure>\n\n\n\n<p class=\" translation-block\">Folder Strcuture of Project is ready. Let's add <strong>BookService<\/strong>and <strong>BookService<\/strong>. BookService will return book info, add get action to Book Controller and the parametre of their is isbn as string. with <strong>Book?isbn=\"asd\"<\/strong> url will return book info without database, using static list<\/p>\n\n\n\n<p class=\" translation-block\">Let's create folders named services to Book.Domain and Book.Infastructure, add <strong>IBookService <\/strong> and <strong>BookService<\/strong> to these folders<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"427\" height=\"388\" data-id=\"306\"  src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/BookService.png\" alt=\"\" class=\"wp-image-306\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/BookService.png 427w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/BookService-300x273.png 300w\" sizes=\"(max-width: 427px) 100vw, 427px\" \/><\/figure>\n<\/figure>\n\n\n\n<p class=\" translation-block\"><strong>DTOS\/BookDTO.cs<\/strong><\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:c# decode:true\">namespace Book.Domain.Models\n{\n    public class BookDTO\n    {\n        public string ISBN { get; set; }\n        public string Title { get; set; }\n        public string Author { get; set; }\n        public int PageCount { get; set; }\n        public string PublisherName { get; set; }\n    }\n}\n<\/pre><\/div>\n\n\n\n<p><strong>IBookService<\/strong><\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github lang:c# decode:true\">using Book.Domain.Models;\n\nnamespace Book.Domain.Services\n{\n    public interface IBookService\n    {\n        BookDTO GetBookByISBN(string isbn);\n    }\n}<\/pre><\/div>\n\n\n\n<p><strong>BookService <\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github lang:c# decode:true\">using Book.Domain.Models;\nusing Book.Domain.Services;\n\nnamespace Book.Infastructure.Services\n{\n    public class BookService : IBookService\n    {\n        public BookDTO GetBookByISBN(string isbn)\n        {\n            if (string.IsNullOrEmpty(isbn))\n            {\n                return null;\n            }\n            var book = new BookDTO\n            {\n                Author = \"J.R.R Tolkien\",\n                ISBN = isbn,\n                PageCount = 1012,\n                PublisherName = \"Metis Yay\u0131nevi\",\n                Title = \"Y\u00fcz\u00fcklerin Efendisi Tek Cilt \u00d6zel Bas\u0131m\"\n            };\n            return book;\n        }\n    }\n}<\/pre><\/div>\n\n\n\n<p>Let's make dependecy injection<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:c# decode:true\">services.AddScoped&lt;IBookService, BookService&gt;();<\/pre><\/div>\n\n\n\n<p><strong>BookController<\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:1 lang:c# decode:true\">[Route(\"api\/[controller]\")]\n    [ApiController]\n    public class BookController : ControllerBase\n    {\n        private readonly IBookService BookService;\n        public BookController(IBookService bookService)\n        {\n            BookService = bookService;\n        }\n        public ActionResult Get(string isbn)\n        {\n            var book = BookService.GetBookByISBN(isbn);\n            return Ok(book);\n        }\n    }<\/pre><\/div>\n\n\n\n<p>Let's set the Book.API layer a startup as project then when we test with a url like api\/book?isbn=test, we can sucessfully see the data in response. Thus for now we completed the book service<\/p>\n\n\n\n<p class=\" translation-block\">User service will be like Book service. The parameter wil be <strong>username<\/strong>.<\/p>\n\n\n\n<p>Bu b\u00f6l\u00fcm kitap servisinin neredeyse ayn\u0131s\u0131 oldu\u011fu i\u00e7in sadece <strong>UserController <\/strong>ve <strong>IUserService&#8217;i <\/strong>g\u00f6sterece\u011fim<\/p>\n\n\n\n<p><strong>UserController<\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:c# decode:true\">[Route(\"api\/[controller]\")]\n    [ApiController]\n    public class UserController : ControllerBase\n    {\n        private readonly IUserService UserService;\n        public UserController(IUserService userService)\n        {\n            UserService = userService;\n        }\n        public ActionResult Get(string username)\n        {\n            var dto = UserService.GetUserByUsername(username);\n            return Ok(dto);\n        }\n    }<\/pre><\/div>\n\n\n\n<p><strong>IUserService<\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:c# decode:true\">namespace User.Domain.Services\n{\n    public interface IUserService\n    {\n        UserDTO GetUserByUsername(string username);\n    }\n}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 lang:c# decode:true\">namespace User.Domain.DTOS\n{\n    public class UserDTO\n    {\n        public string Username { get; set; }\n        public string Name { get; set; }\n        public string Surname { get; set; }\n        public DateTime? BirthDate { get; set; }\n        public int? Age =&gt; BirthDate.HasValue ? DateTime.Now.Year - BirthDate.Value.Year : (int?)null;\n    }\n}<\/pre><\/div>\n\n\n\n<p class=\" translation-block\">In this section we added UserService, IUserService, UserController same as BookService. when we test with a url like api\/user?username=test, we can sucessfully see the data in response. Let's go <strong>gateway <\/strong>create.<\/p>\n\n\n\n<h5 id=\"api-gateway\">Api Gateway<\/h5>\n\n\n\n<p class=\" translation-block\"><strong>First of all, let's talk about why we need api gateway.<\/strong> The two services we do will work on different ports, maybe on different machines. We will can request to these services at client, connecting different port on every request will be hard api management at client, instead having all our services at a single point will facilitate api management.<\/p>\n\n\n\n<p class=\" translation-block\">Let's add <strong>Ocelot<\/strong> package to layer of APIGateway on nuget.<br>\n<a rel=\"noreferrer noopener\" href=\"https:\/\/ocelot.readthedocs.io\/\" data-type=\"URL\" data-id=\"https:\/\/ocelot.readthedocs.io\/\" target=\"_blank\">offical documention<\/a><\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"908\" height=\"109\" data-id=\"310\"  src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Ocel-Nuget.png\" alt=\"\" class=\"wp-image-310\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Ocel-Nuget.png 908w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Ocel-Nuget-300x36.png 300w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Ocel-Nuget-768x92.png 768w\" sizes=\"(max-width: 908px) 100vw, 908px\" \/><\/figure>\n<\/figure>\n\n\n\n<p class=\" translation-block\">after installing package let's add <strong>apiSettings.json<\/strong> to root directory, will get definition of these services.<br>We are editing our json file as follows.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github lang:js decode:true\">{\n  \"Routes\" : [\n    {\n      \"DownstreamPathTemplate\": \"\/api\/book?isbn={isbn}\",\n      \"DownstreamScheme\": \"https\",\n      \"DownstreamHostAndPorts\": [\n        {\n          \"Host\": \"localhost\",\n          \"Port\": 44365\n        }\n      ],\n      \"UpstreamPathTemplate\": \"\/book\/{isbn}\",\n      \"UpstreamHttpMethod\": [ \"Get\" ]\n    },\n    {\n      \"DownstreamPathTemplate\": \"\/api\/user?username={username}\",\n      \"DownstreamScheme\": \"https\",\n      \"DownstreamHostAndPorts\": [\n        {\n          \"Host\": \"localhost\",\n          \"Port\": 44313\n        }\n      ],\n      \"UpstreamPathTemplate\": \"\/user\/{username}\",\n      \"UpstreamHttpMethod\": [ \"Get\" ]\n    }\n  ]\n}<\/pre><\/div>\n\n\n\n<p>There is array object named routes. We added our services to these array, wrote https ports of services to port section. <strong>Downstream<\/strong> is the information of the service we are connecting to, and <strong>Upstream<\/strong> is the port we call over the gateway, that is, we have determined which address to trigger on the port we actually use. <strong>Downstream<\/strong>, ba\u011fland\u0131\u011f\u0131m\u0131z servisin bilgileri, <strong>Upstream <\/strong>ise gateway \u00fczerinden \u00e7a\u011f\u0131rd\u0131\u011f\u0131m\u0131z yani asl\u0131nda kulland\u0131\u011f\u0131m\u0131z port \u00fczerinde hangi adresle tetiklenece\u011fini belirledik.<\/p>\n\n\n\n<p>Let's entire solution properties, these services and gateway set as start<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"780\" height=\"548\" data-id=\"312\"  src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Solution_ApiGateway_Settings.png\" alt=\"\" class=\"wp-image-312\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Solution_ApiGateway_Settings.png 780w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Solution_ApiGateway_Settings-300x211.png 300w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Solution_ApiGateway_Settings-768x540.png 768w\" sizes=\"(max-width: 780px) 100vw, 780px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>  Let's run our project and check the response with the urls we have determined.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"766\" height=\"247\" data-id=\"313\"  src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/User_Request.png\" alt=\"\" class=\"wp-image-313\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/User_Request.png 766w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/User_Request-300x97.png 300w\" sizes=\"(max-width: 766px) 100vw, 766px\" \/><\/figure>\n<\/figure>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"225\" data-id=\"314\"  src=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Screenshot_21-1024x225.png\" alt=\"\" class=\"wp-image-314\" srcset=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Screenshot_21-1024x225.png 1024w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Screenshot_21-300x66.png 300w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Screenshot_21-768x169.png 768w, https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/06\/Screenshot_21.png 1146w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>You can access the project files from the link below.<\/p>\n\n\n\n<p>Project url : <a href=\"https:\/\/github.com\/okankrdg\/ApiGatewayExample\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/okankrdg\/ApiGatewayExample<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>asp.net core (5.0) ile mikroservis mimarisini kullanarak api gateway&#8217;in kullan\u0131m\u0131 inceleyece\u011fiz? api gateway nedir? Hepsini bir proje yaparak g\u00f6relim<\/p>","protected":false},"author":1,"featured_media":203,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[65,17,67],"tags":[69,66,56,45,68,70],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Dotnet \u00fczerinden API Gateway ve Mikro Servis Mimarisine uygun proje yap\u0131m\u0131 - Okan Karada\u011f<\/title>\n<meta name=\"description\" content=\"asp.net core (5.0) ile mikroservis mimarisini kullanarak api gateway&#039;in kullan\u0131m\u0131 inceleyece\u011fiz? api gateway nedir? Hepsini bir proje yaparak g\u00f6relim\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/okankaradag.com\/en\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dotnet \u00fczerinden API Gateway ve Mikro Servis Mimarisine uygun proje yap\u0131m\u0131 - Okan Karada\u011f\" \/>\n<meta property=\"og:description\" content=\"asp.net core (5.0) ile mikroservis mimarisini kullanarak api gateway&#039;in kullan\u0131m\u0131 inceleyece\u011fiz? api gateway nedir? Hepsini bir proje yaparak g\u00f6relim\" \/>\n<meta property=\"og:url\" content=\"https:\/\/okankaradag.com\/en\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi\/\" \/>\n<meta property=\"og:site_name\" content=\"Okan Karada\u011f\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-14T17:24:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-06T21:00:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/02\/asp.net-core-logo-e1623756006486.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"167\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Okan Karada\u011f\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Okan Karada\u011f\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi#article\",\"isPartOf\":{\"@id\":\"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi\"},\"author\":{\"name\":\"Okan Karada\u011f\",\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"headline\":\"Dotnet \u00fczerinden API Gateway ve Mikro Servis Mimarisine uygun proje yap\u0131m\u0131\",\"datePublished\":\"2021-06-14T17:24:13+00:00\",\"dateModified\":\"2022-02-06T21:00:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi\"},\"wordCount\":665,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"keywords\":[\"api gateway\",\"asp.net 5\",\"asp.net core\",\"dotnet core\",\"microservices\",\"mikroservisler\"],\"articleSection\":[\"Asp.Net Core 5.0\",\"C#\",\"Design Patterns\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi\",\"url\":\"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi\",\"name\":\"Dotnet \u00fczerinden API Gateway ve Mikro Servis Mimarisine uygun proje yap\u0131m\u0131 - Okan Karada\u011f\",\"isPartOf\":{\"@id\":\"https:\/\/okankaradag.com\/#website\"},\"datePublished\":\"2021-06-14T17:24:13+00:00\",\"dateModified\":\"2022-02-06T21:00:26+00:00\",\"description\":\"asp.net core (5.0) ile mikroservis mimarisini kullanarak api gateway'in kullan\u0131m\u0131 inceleyece\u011fiz? api gateway nedir? Hepsini bir proje yaparak g\u00f6relim\",\"breadcrumb\":{\"@id\":\"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/okankaradag.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dotnet \u00fczerinden API Gateway ve Mikro Servis Mimarisine uygun proje yap\u0131m\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/okankaradag.com\/#website\",\"url\":\"https:\/\/okankaradag.com\/\",\"name\":\"Okan Karada\u011f\",\"description\":\"Programlama \u00dczerine\",\"publisher\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/okankaradag.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\",\"name\":\"Okan Karada\u011f\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g\",\"caption\":\"Okan Karada\u011f\"},\"logo\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/okankaradag.com\"],\"url\":\"https:\/\/okankaradag.com\/en\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dotnet \u00fczerinden API Gateway ve Mikro Servis Mimarisine uygun proje yap\u0131m\u0131 - Okan Karada\u011f","description":"asp.net core (5.0) ile mikroservis mimarisini kullanarak api gateway'in kullan\u0131m\u0131 inceleyece\u011fiz? api gateway nedir? Hepsini bir proje yaparak g\u00f6relim","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/okankaradag.com\/en\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi\/","og_locale":"en_US","og_type":"article","og_title":"Dotnet \u00fczerinden API Gateway ve Mikro Servis Mimarisine uygun proje yap\u0131m\u0131 - Okan Karada\u011f","og_description":"asp.net core (5.0) ile mikroservis mimarisini kullanarak api gateway'in kullan\u0131m\u0131 inceleyece\u011fiz? api gateway nedir? Hepsini bir proje yaparak g\u00f6relim","og_url":"https:\/\/okankaradag.com\/en\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi\/","og_site_name":"Okan Karada\u011f","article_published_time":"2021-06-14T17:24:13+00:00","article_modified_time":"2022-02-06T21:00:26+00:00","og_image":[{"width":300,"height":167,"url":"https:\/\/okankaradag.com\/wp-content\/uploads\/2021\/02\/asp.net-core-logo-e1623756006486.png","type":"image\/png"}],"author":"Okan Karada\u011f","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Okan Karada\u011f","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi#article","isPartOf":{"@id":"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi"},"author":{"name":"Okan Karada\u011f","@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"headline":"Dotnet \u00fczerinden API Gateway ve Mikro Servis Mimarisine uygun proje yap\u0131m\u0131","datePublished":"2021-06-14T17:24:13+00:00","dateModified":"2022-02-06T21:00:26+00:00","mainEntityOfPage":{"@id":"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi"},"wordCount":665,"commentCount":2,"publisher":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"keywords":["api gateway","asp.net 5","asp.net core","dotnet core","microservices","mikroservisler"],"articleSection":["Asp.Net Core 5.0","C#","Design Patterns"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi#respond"]}]},{"@type":"WebPage","@id":"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi","url":"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi","name":"Dotnet \u00fczerinden API Gateway ve Mikro Servis Mimarisine uygun proje yap\u0131m\u0131 - Okan Karada\u011f","isPartOf":{"@id":"https:\/\/okankaradag.com\/#website"},"datePublished":"2021-06-14T17:24:13+00:00","dateModified":"2022-02-06T21:00:26+00:00","description":"asp.net core (5.0) ile mikroservis mimarisini kullanarak api gateway'in kullan\u0131m\u0131 inceleyece\u011fiz? api gateway nedir? Hepsini bir proje yaparak g\u00f6relim","breadcrumb":{"@id":"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/okankaradag.com\/asp-net-5\/dotnet-uzerinden-api-gateway-kullanarak-basit-bir-mikro-servis-proje-yapimi#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/okankaradag.com\/"},{"@type":"ListItem","position":2,"name":"Dotnet \u00fczerinden API Gateway ve Mikro Servis Mimarisine uygun proje yap\u0131m\u0131"}]},{"@type":"WebSite","@id":"https:\/\/okankaradag.com\/#website","url":"https:\/\/okankaradag.com\/","name":"Okan Karada\u011f","description":"Programlama \u00dczerine","publisher":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/okankaradag.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52","name":"Okan Karada\u011f","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/okankaradag.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g","caption":"Okan Karada\u011f"},"logo":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/okankaradag.com"],"url":"https:\/\/okankaradag.com\/en\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/301"}],"collection":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/comments?post=301"}],"version-history":[{"count":12,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/301\/revisions"}],"predecessor-version":[{"id":622,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/301\/revisions\/622"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/media\/203"}],"wp:attachment":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/media?parent=301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/categories?post=301"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/tags?post=301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}