{"id":9360,"date":"2020-05-14T08:00:56","date_gmt":"2020-05-14T15:00:56","guid":{"rendered":"http:\/\/softwareengineeringdaily.com\/?p=9360"},"modified":"2021-08-19T11:18:37","modified_gmt":"2021-08-19T18:18:37","slug":"an-introduction-to-api-management-and-nginx","status":"publish","type":"post","link":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/","title":{"rendered":"An Introduction to API Management and NGINX"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">This article is based on the content found in <\/span><a href=\"https:\/\/www.softwaredaily.com\/post\/5ea00c5448d1fa000c9d4b92\/NGINX-API-Management-with-Kevin-Jones\"><span style=\"font-weight: 400;\">this episode<\/span><\/a><span style=\"font-weight: 400;\"> of Software Engineering Daily. This episode features NGINX product manager <\/span><a href=\"https:\/\/www.linkedin.com\/in\/kevin-jones-19b17b47\/\"><span style=\"font-weight: 400;\">Kevin Jones<\/span><\/a><span style=\"font-weight: 400;\">. All quotes from Jones can be found in <\/span><a href=\"https:\/\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/04\/SED1053-NGINX-API-Gateway.pdf\"><span style=\"font-weight: 400;\">this episode\u2019s transcript<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><b>Setting the Stage for API Management<\/b><\/p>\n<p><span style=\"font-weight: 400;\">The term \u201cAPI\u201d is, and has been for quite some time, ubiquitous within the context of computing. Today, web-based APIs are among the most prevalent kinds of APIs. Salesforce introduced the first web-based API in early 2000, which birthed the notion of Internet-as-a-service (IaaS).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Much has changed within the arena of web infrastructure over the past twenty years. These changes have influenced the body of thought surrounding APIs, as well as how APIs are operationalized. Jones notes \u201ca rise in services, the amounts of services, and [\u2026] an increase in various protocols being used to communicate over the Internet\u201d as high-level changes within the scope of web infrastructure.<\/span><\/p>\n<p><a href=\"https:\/\/trends.google.com\/trends\/explore?date=all&amp;geo=US&amp;q=api%20gateway,microservices\"><img fetchpriority=\"high\" decoding=\"async\" data-attachment-id=\"9362\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/microservices-5\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/microservices.png?fit=1026%2C611&amp;ssl=1\" data-orig-size=\"1026,611\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"microservices\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/microservices.png?fit=300%2C179&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/microservices.png?fit=1024%2C610&amp;ssl=1\" class=\"aligncenter wp-image-9362\" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/microservices-300x179.png?resize=500%2C298&#038;ssl=1\" alt=\"\" width=\"500\" height=\"298\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/microservices.png?resize=300%2C179&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/microservices.png?resize=1024%2C610&amp;ssl=1 1024w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/microservices.png?resize=768%2C457&amp;ssl=1 768w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/microservices.png?w=1026&amp;ssl=1 1026w\" sizes=\"(max-width: 500px) 100vw, 500px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">In addition to changes within web infrastructure, the increased popularity and number of mobile devices has drastically increased web usage. The near-simultaneous rise of microservice-based applications led to even more communication over the Internet. Jones states the resulting effects concisely: \u201cmore devices, more connections, and more requests being processed throughout the internet.\u201d<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Microservice-based architecture also increases to the number of APIs within a system. The initial wave of companies breaking apart their monoliths in order to extract services brought an inherent increase in APIs and requests being processed. Communication protocols are defined by each microservice; this is the microservice\u2019s API. Microservices come in all different flavors. Their uses vary widely, environments may be different, needs for role-based access can change, and hardware may be located in different geographic locations.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Now, this is where the notion of API management becomes relevant. A common way to implement API management is by using <\/span><a href=\"https:\/\/www.nginx.com\/\"><span style=\"font-weight: 400;\">NGINX<\/span><\/a><span style=\"font-weight: 400;\">, a popular and reliable reverse proxy. NGINX has an <\/span><a href=\"https:\/\/www.nginx.com\/products\/nginx-controller\/api-management\/\"><span style=\"font-weight: 400;\">API management module<\/span><\/a><span style=\"font-weight: 400;\"> that provides users with a control plane that sits on top of API gateways.<\/span><\/p>\n<p><a href=\"https:\/\/www.nginx.com\/products\/nginx-controller\/api-management\/\"><img decoding=\"async\" data-attachment-id=\"9364\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/nginxcontroller\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/NGINXController.png?fit=1045%2C606&amp;ssl=1\" data-orig-size=\"1045,606\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"NGINXController\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/NGINXController.png?fit=300%2C174&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/NGINXController.png?fit=1024%2C594&amp;ssl=1\" class=\"aligncenter wp-image-9364\" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/NGINXController-300x174.png?resize=500%2C290&#038;ssl=1\" alt=\"\" width=\"500\" height=\"290\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/NGINXController.png?resize=300%2C174&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/NGINXController.png?resize=1024%2C594&amp;ssl=1 1024w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/NGINXController.png?resize=768%2C445&amp;ssl=1 768w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/NGINXController.png?resize=120%2C69&amp;ssl=1 120w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/NGINXController.png?w=1045&amp;ssl=1 1045w\" sizes=\"(max-width: 500px) 100vw, 500px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><b>What is API Management?<\/b><\/p>\n<p><span style=\"font-weight: 400;\">API management is often discussed in tandem with API gateways. In some contexts, these two concepts are sometimes used interchangeably, though they aren\u2019t synonymous. Technically, an API gateway is a reverse proxy that sits between an API and its consumers. API management refers to the process of maintaining a group of API gateways; an API management tool is the control plane for a collection of gateways.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Exploring the functionalities of API gateways can help shed light on the benefits offered by an API management tool. These benefits include the ability to perform authentication and rate limiting, routing, and canary rollouts. NGINX has the ability to act as a reverse proxy and assume the role of an API gateway. Not only does NGINX offer fine-grain control over all of the aforementioned benefits of API gateways, but it offers many others, as well. The configuration of NGINX is controlled by directives. Visit the <\/span><a href=\"http:\/\/nginx.org\/en\/docs\/dirindex.html\"><span style=\"font-weight: 400;\">NGINX directives documentation<\/span><\/a><span style=\"font-weight: 400;\"> for a comprehensive list of NGINX\u2019s potential use cases.<\/span><\/p>\n<p><img decoding=\"async\" data-attachment-id=\"9365\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/apigateway\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/APIGateway.png?fit=622%2C457&amp;ssl=1\" data-orig-size=\"622,457\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"APIGateway\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/APIGateway.png?fit=300%2C220&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/APIGateway.png?fit=622%2C457&amp;ssl=1\" class=\"aligncenter wp-image-9365\" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/APIGateway-300x220.png?resize=500%2C367&#038;ssl=1\" alt=\"\" width=\"500\" height=\"367\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/APIGateway.png?resize=300%2C220&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/APIGateway.png?w=622&amp;ssl=1 622w\" sizes=\"(max-width: 500px) 100vw, 500px\" data-recalc-dims=\"1\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Note that Figure 5 is only illustrating to give an overview of the benefits of an API gateway. Assuming a microservice-based architecture is being used in this hypothetical, the API endpoints shown would most likely each belong to a number of different microservices. To that end, there would most likely be more than one API gateway; this figure is not attempting to demonstrate an archetypal pattern relating to how an API gateway fits into a system\u2019s architecture. If you\u2019re interested in learning more about using an API gateway to help build a microservice-based application, check out <\/span><a href=\"https:\/\/www.nginx.com\/blog\/building-microservices-using-an-api-gateway\/\"><span style=\"font-weight: 400;\">this blog post<\/span><\/a><span style=\"font-weight: 400;\"> from NGINX.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Figure 5 pictures a single tier API gateway. A two-tiered gateway pattern is often used to separate responsibilities of security teams from those of SRE and DevOps teams. The idea behind this pattern is to separate high-level functionality, like security and access control, from service-dependent functionality, like routing. Jones notes another benefit to this pattern: \u201cmicroservice[s] sitting behind that internal router gateway [\u2026] don&#8217;t have to go all the way back out through to the Internet and come into the <\/span><a href=\"https:\/\/searchsecurity.techtarget.com\/definition\/DMZ\"><span style=\"font-weight: 400;\">DMZ<\/span><\/a><span style=\"font-weight: 400;\"> again.\u201d<\/span><\/p>\n<p><a href=\"https:\/\/www.nginx.com\/blog\/what-is-a-service-mesh\/\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"9366\" data-permalink=\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/controlplane\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/ControlPlane.png?fit=1024%2C555&amp;ssl=1\" data-orig-size=\"1024,555\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ControlPlane\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/ControlPlane.png?fit=300%2C163&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/ControlPlane.png?fit=1024%2C555&amp;ssl=1\" class=\"aligncenter wp-image-9366\" src=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/ControlPlane-300x163.png?resize=500%2C271&#038;ssl=1\" alt=\"\" width=\"500\" height=\"271\" srcset=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/ControlPlane.png?resize=300%2C163&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/ControlPlane.png?resize=768%2C416&amp;ssl=1 768w, https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/ControlPlane.png?w=1024&amp;ssl=1 1024w\" sizes=\"(max-width: 500px) 100vw, 500px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">There aren\u2019t hard-and-fast rules describing the optimal API gateway pattern for a system. One could consider a service mesh as a system with an API gateway at each instance of a service, with sidecar proxies acting as gateways; this is where a tool like NGINX would be hosted. Jones notes the largest benefit of this pattern: \u201cyou can really have a fine-grained configuration all the way up into the container.\u201d Check out <\/span><a href=\"https:\/\/www.nginx.com\/blog\/what-is-a-service-mesh\/\"><span style=\"font-weight: 400;\">this blog post<\/span><\/a><span style=\"font-weight: 400;\"> from NGINX, if you\u2019re interested in learning more about service meshes.<\/span><\/p>\n<p><b>Takeaways<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Software architecture is constantly changing. There are different protocols used to communicate between services, and their preferred mediums, like <\/span><a href=\"https:\/\/www.geeksforgeeks.org\/remote-procedure-call-rpc-in-operating-system\/\"><span style=\"font-weight: 400;\">RPC<\/span><\/a><span style=\"font-weight: 400;\"> and JSON, may change. The environments a system\u2019s API gateways are in may change. A popular API management tool is the <\/span><a href=\"https:\/\/www.nginx.com\/products\/nginx-controller\/\"><span style=\"font-weight: 400;\">NGINX Controller<\/span><\/a><span style=\"font-weight: 400;\">. It\u2019s a way to manage these gateways that\u2019s infrastructure-agnostic, removing the burden of maintaining each gateway in its particular environment.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is based on the content found in this episode of Software Engineering Daily. This episode features NGINX product manager Kevin Jones. All quotes from Jones can be found in this episode\u2019s transcript. Setting the Stage for API Management The term \u201cAPI\u201d is, and has been for quite some time, ubiquitous within the context<\/p>\n","protected":false},"author":3,"featured_media":9361,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"An Introduction to API Management and NGINX @webopsx @nginx @F5Networks","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[1363,83,2143],"tags":[3749,3653,3674,20,3652,3416,3750],"class_list":["post-9360","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all-episodes","category-articles","category-exclusive-content","tag-api-gateways","tag-f5","tag-kevin-jones","tag-microservices","tag-nginx","tag-nick-daigler","tag-service-meshes"],"jetpack_publicize_connections":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>An Introduction to API Management and NGINX - Software Engineering Daily<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"An Introduction to API Management and NGINX - Software Engineering Daily\" \/>\n<meta property=\"og:description\" content=\"This article is based on the content found in this episode of Software Engineering Daily. This episode features NGINX product manager Kevin Jones. All quotes from Jones can be found in this episode\u2019s transcript. Setting the Stage for API Management The term \u201cAPI\u201d is, and has been for quite some time, ubiquitous within the context\" \/>\n<meta property=\"og:url\" content=\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/\" \/>\n<meta property=\"og:site_name\" content=\"Software Engineering Daily\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-14T15:00:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-19T18:18:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/N.jpg?fit=1999%2C1375&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1999\" \/>\n\t<meta property=\"og:image:height\" content=\"1375\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"SE Daily\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@software_daily\" \/>\n<meta name=\"twitter:site\" content=\"@software_daily\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"SE Daily\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/\"},\"author\":{\"name\":\"SE Daily\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8\"},\"headline\":\"An Introduction to API Management and NGINX\",\"datePublished\":\"2020-05-14T15:00:56+00:00\",\"dateModified\":\"2021-08-19T18:18:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/\"},\"wordCount\":840,\"publisher\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/N.jpg?fit=1999%2C1375&ssl=1\",\"keywords\":[\"API gateways\",\"F5\",\"Kevin Jones\",\"microservices\",\"NGINX\",\"Nick Daigler\",\"service meshes\"],\"articleSection\":[\"All Content\",\"Exclusive Articles\",\"Exclusive Content\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/\",\"url\":\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/\",\"name\":\"An Introduction to API Management and NGINX - Software Engineering Daily\",\"isPartOf\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/N.jpg?fit=1999%2C1375&ssl=1\",\"datePublished\":\"2020-05-14T15:00:56+00:00\",\"dateModified\":\"2021-08-19T18:18:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/N.jpg?fit=1999%2C1375&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/N.jpg?fit=1999%2C1375&ssl=1\",\"width\":1999,\"height\":1375},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/softwareengineeringdaily.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"An Introduction to API Management and NGINX\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#website\",\"url\":\"https:\/\/softwareengineeringdaily.com\/\",\"name\":\"Software Engineering Daily\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/softwareengineeringdaily.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#organization\",\"name\":\"Software Engineering Daily\",\"url\":\"https:\/\/softwareengineeringdaily.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1\",\"width\":549,\"height\":169,\"caption\":\"Software Engineering Daily\"},\"image\":{\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/software_daily\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8\",\"name\":\"SE Daily\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg\",\"caption\":\"SE Daily\"},\"description\":\"The SE Daily podcast.\",\"sameAs\":[\"https:\/\/softwareengineeringdaily.com\"],\"url\":\"https:\/\/softwareengineeringdaily.com\/author\/erikawho\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"An Introduction to API Management and NGINX - Software Engineering Daily","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:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/","og_locale":"en_US","og_type":"article","og_title":"An Introduction to API Management and NGINX - Software Engineering Daily","og_description":"This article is based on the content found in this episode of Software Engineering Daily. This episode features NGINX product manager Kevin Jones. All quotes from Jones can be found in this episode\u2019s transcript. Setting the Stage for API Management The term \u201cAPI\u201d is, and has been for quite some time, ubiquitous within the context","og_url":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/","og_site_name":"Software Engineering Daily","article_published_time":"2020-05-14T15:00:56+00:00","article_modified_time":"2021-08-19T18:18:37+00:00","og_image":[{"width":1999,"height":1375,"url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/N.jpg?fit=1999%2C1375&ssl=1","type":"image\/jpeg"}],"author":"SE Daily","twitter_card":"summary_large_image","twitter_creator":"@software_daily","twitter_site":"@software_daily","twitter_misc":{"Written by":"SE Daily","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#article","isPartOf":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/"},"author":{"name":"SE Daily","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8"},"headline":"An Introduction to API Management and NGINX","datePublished":"2020-05-14T15:00:56+00:00","dateModified":"2021-08-19T18:18:37+00:00","mainEntityOfPage":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/"},"wordCount":840,"publisher":{"@id":"https:\/\/softwareengineeringdaily.com\/#organization"},"image":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/N.jpg?fit=1999%2C1375&ssl=1","keywords":["API gateways","F5","Kevin Jones","microservices","NGINX","Nick Daigler","service meshes"],"articleSection":["All Content","Exclusive Articles","Exclusive Content"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/","url":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/","name":"An Introduction to API Management and NGINX - Software Engineering Daily","isPartOf":{"@id":"https:\/\/softwareengineeringdaily.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#primaryimage"},"image":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/N.jpg?fit=1999%2C1375&ssl=1","datePublished":"2020-05-14T15:00:56+00:00","dateModified":"2021-08-19T18:18:37+00:00","breadcrumb":{"@id":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#primaryimage","url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/N.jpg?fit=1999%2C1375&ssl=1","contentUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/N.jpg?fit=1999%2C1375&ssl=1","width":1999,"height":1375},{"@type":"BreadcrumbList","@id":"https:\/\/softwareengineeringdaily.com\/2020\/05\/14\/an-introduction-to-api-management-and-nginx\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/softwareengineeringdaily.com\/"},{"@type":"ListItem","position":2,"name":"An Introduction to API Management and NGINX"}]},{"@type":"WebSite","@id":"https:\/\/softwareengineeringdaily.com\/#website","url":"https:\/\/softwareengineeringdaily.com\/","name":"Software Engineering Daily","description":"","publisher":{"@id":"https:\/\/softwareengineeringdaily.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/softwareengineeringdaily.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/softwareengineeringdaily.com\/#organization","name":"Software Engineering Daily","url":"https:\/\/softwareengineeringdaily.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1","contentUrl":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2024\/01\/cropped-sed_website_banner.png?fit=549%2C169&ssl=1","width":549,"height":169,"caption":"Software Engineering Daily"},"image":{"@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/software_daily"]},{"@type":"Person","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/822f06fe7d6f895baba29a9c0a3aa6c8","name":"SE Daily","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/softwareengineeringdaily.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/87cddb92997841dafa04aa675bbdaca4?s=96&d=retro&r=pg","caption":"SE Daily"},"description":"The SE Daily podcast.","sameAs":["https:\/\/softwareengineeringdaily.com"],"url":"https:\/\/softwareengineeringdaily.com\/author\/erikawho\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/softwareengineeringdaily.com\/wp-content\/uploads\/2020\/05\/N.jpg?fit=1999%2C1375&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p7GuoD-2qY","_links":{"self":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts\/9360"}],"collection":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/comments?post=9360"}],"version-history":[{"count":0,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/posts\/9360\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/media\/9361"}],"wp:attachment":[{"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/media?parent=9360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/categories?post=9360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/softwareengineeringdaily.com\/wp-json\/wp\/v2\/tags?post=9360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}