{"id":409,"date":"2025-06-24T06:53:58","date_gmt":"2025-06-24T06:53:58","guid":{"rendered":"https:\/\/sreschool.com\/blog\/?p=409"},"modified":"2026-05-05T07:29:43","modified_gmt":"2026-05-05T07:29:43","slug":"rate-limiting-in-devsecops","status":"publish","type":"post","link":"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/","title":{"rendered":"Rate Limiting in DevSecOps"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\"><strong>1. Introduction &amp; Overview<\/strong><\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 What is Rate Limiting?<\/h3>\n\n\n\n<p>Rate limiting is a technique used to control the rate at which users or systems can access services, APIs, or resources. It protects services from abuse, overuse, and ensures fair usage across consumers.<\/p>\n\n\n\n<p>In DevSecOps, it is a <strong>security control and performance safeguard<\/strong> against DDoS attacks, brute force attempts, and API spamming.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcdc History or Background<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Early Networking (1980s\u20131990s):<\/strong> Basic throttling at routers and firewalls.<\/li>\n\n\n\n<li><strong>Web 2.0 Era:<\/strong> APIs introduced quotas and per-user limits.<\/li>\n\n\n\n<li><strong>Cloud &amp; Microservices:<\/strong> Rate limiting became vital for managing distributed and multi-tenant environments.<\/li>\n\n\n\n<li><strong>DevSecOps Evolution:<\/strong> Rate limiting integrated into CI\/CD pipelines and security governance policies.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd10 Why is Rate Limiting Relevant in DevSecOps?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Security:<\/strong> Prevents credential stuffing, bot abuse, and API misuse.<\/li>\n\n\n\n<li><strong>Stability:<\/strong> Protects backend services from being overwhelmed.<\/li>\n\n\n\n<li><strong>Compliance:<\/strong> Supports regulations like GDPR, HIPAA by enforcing access control.<\/li>\n\n\n\n<li><strong>Observability:<\/strong> Enhances monitoring by tracking request behaviors.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Core Concepts &amp; Terminology<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd11 Key Terms &amp; Definitions<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Term<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>Token Bucket<\/strong><\/td><td>A rate limiting algorithm using tokens as request permits.<\/td><\/tr><tr><td><strong>Leaky Bucket<\/strong><\/td><td>Allows fixed rate of traffic by processing requests evenly.<\/td><\/tr><tr><td><strong>Throttle<\/strong><\/td><td>To reduce the speed or frequency of requests.<\/td><\/tr><tr><td><strong>Quota<\/strong><\/td><td>Maximum number of requests a client can make in a given time.<\/td><\/tr><tr><td><strong>Burst Limit<\/strong><\/td><td>Temporary spikes above the rate limit that are tolerated.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83e\udde9 How It Fits into the DevSecOps Lifecycle<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Phase<\/th><th>Integration of Rate Limiting<\/th><\/tr><\/thead><tbody><tr><td><strong>Plan<\/strong><\/td><td>Define API usage policies and SLAs.<\/td><\/tr><tr><td><strong>Develop<\/strong><\/td><td>Include annotations or configs to enable rate limit per endpoint.<\/td><\/tr><tr><td><strong>Build<\/strong><\/td><td>Include rate-limiting libraries in microservices.<\/td><\/tr><tr><td><strong>Test<\/strong><\/td><td>Test endpoints for rate limit behaviors (e.g., 429 responses).<\/td><\/tr><tr><td><strong>Release<\/strong><\/td><td>Ensure CDN and API Gateway rate-limits are applied.<\/td><\/tr><tr><td><strong>Monitor<\/strong><\/td><td>Alert on high-rate anomalies.<\/td><\/tr><tr><td><strong>Respond<\/strong><\/td><td>Block IPs or users violating rate limits frequently.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Architecture &amp; How It Works<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd27 Components<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Client (User or Service)<\/strong><\/li>\n\n\n\n<li><strong>API Gateway \/ Load Balancer<\/strong><\/li>\n\n\n\n<li><strong>Rate Limiting Middleware \/ Plugin<\/strong><\/li>\n\n\n\n<li><strong>Token Store (e.g., Redis)<\/strong><\/li>\n\n\n\n<li><strong>Monitoring System<\/strong><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd04 Internal Workflow<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Request hits <strong>API Gateway<\/strong>.<\/li>\n\n\n\n<li>Gateway checks the <strong>token bucket<\/strong> or <strong>quota<\/strong>.<\/li>\n\n\n\n<li>If allowed, request proceeds to backend.<\/li>\n\n\n\n<li>If exceeded, returns <code>HTTP 429 Too Many Requests<\/code>.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcca Architecture Diagram (Text Representation)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Client ---&gt; API Gateway ---&gt; Rate Limiting Plugin ---&gt; Backend Service\n                       |                             |\n                Token Store (Redis)          Logging\/Alerting\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd17 Integration Points<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CI\/CD<\/strong>: Add rate-limiting policies in YAML configs (e.g., Kong, Istio).<\/li>\n\n\n\n<li><strong>Cloud Tools<\/strong>: Use AWS API Gateway, GCP Endpoints, or Azure Front Door with built-in rate-limiting.<\/li>\n\n\n\n<li><strong>Monitoring<\/strong>: Grafana + Prometheus for 429 metrics.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. Installation &amp; Getting Started<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd27 Prerequisites<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>API Gateway (Kong \/ NGINX \/ AWS API Gateway)<\/li>\n\n\n\n<li>Redis (for token storage)<\/li>\n\n\n\n<li>Docker or Kubernetes (optional for deployment)<\/li>\n\n\n\n<li>Node.js \/ Python \/ Java App (for demo)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udee0\ufe0f Step-by-Step Setup (Example with NGINX + Lua)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. Install OpenResty (NGINX + Lua)<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install openresty\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">2. Add Lua script to enforce rate limits<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>local limit_req = require \"resty.limit.req\"\nlocal lim, err = limit_req.new(\"my_limit_req_store\", 10, 20)\nlocal delay, err = lim:incoming(\"api-key-123\", true)\nif not delay then\n    ngx.exit(429)\nend\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">3. Configure Redis-backed token store (optional)<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use Lua-resty-redis module<\/li>\n\n\n\n<li>Store usage counters per IP or API key<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. Real-World Use Cases<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd10 DevSecOps Scenarios<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>API Security<\/strong>\n<ul class=\"wp-block-list\">\n<li>Preventing brute force on login endpoints.<\/li>\n\n\n\n<li>Use rate limit per user\/IP.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>CI\/CD Artifact Repositories<\/strong>\n<ul class=\"wp-block-list\">\n<li>Limit download rate of container images from private registries.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Microservices Access<\/strong>\n<ul class=\"wp-block-list\">\n<li>Rate limit service-to-service calls to prevent cascading failures.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Public Developer APIs<\/strong>\n<ul class=\"wp-block-list\">\n<li>Free users: 100 req\/min, Premium users: 1000 req\/min.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83c\udf0d Industry-Specific Examples<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Healthcare:<\/strong> Throttle access to patient record APIs to prevent abuse.<\/li>\n\n\n\n<li><strong>FinTech:<\/strong> Enforce trading rate limits to prevent bot trading or abuse.<\/li>\n\n\n\n<li><strong>E-Commerce:<\/strong> Prevent scraping of product listings via IP-based rate limits.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>6. Benefits &amp; Limitations<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 Key Advantages<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prevents abuse and DDoS<\/li>\n\n\n\n<li>Supports fair use policies<\/li>\n\n\n\n<li>Reduces backend stress<\/li>\n\n\n\n<li>Enhances observability and security posture<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u274c Common Challenges<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Can be bypassed via distributed IPs (need WAF + IP reputation).<\/li>\n\n\n\n<li>False positives can affect UX (e.g., legit burst traffic).<\/li>\n\n\n\n<li>Stateful storage (Redis) can become a bottleneck.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>7. Best Practices &amp; Recommendations<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udee1\ufe0f Security Tips<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use per-IP + per-API-key combo<\/li>\n\n\n\n<li>Integrate with Web Application Firewall (WAF)<\/li>\n\n\n\n<li>Log and alert suspicious patterns<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcc8 Performance &amp; Maintenance<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use Redis or in-memory store for fast token lookups.<\/li>\n\n\n\n<li>Monitor token bucket refill rates.<\/li>\n\n\n\n<li>Apply rate limits closest to the edge (CDN \/ API Gateway).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 Compliance &amp; Automation<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Automate policy checks in CI\/CD<\/li>\n\n\n\n<li>Generate audit logs for throttling decisions<\/li>\n\n\n\n<li>Integrate with identity providers for dynamic user limits<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>8. Comparison with Alternatives<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Approach<\/th><th>Description<\/th><th>Pros<\/th><th>Cons<\/th><\/tr><\/thead><tbody><tr><td><strong>Rate Limiting<\/strong><\/td><td>Restricts number of requests<\/td><td>Simple, effective<\/td><td>Static limits<\/td><\/tr><tr><td><strong>Circuit Breaker<\/strong><\/td><td>Stops traffic during failures<\/td><td>Resilient<\/td><td>Not usage-focused<\/td><\/tr><tr><td><strong>CAPTCHA<\/strong><\/td><td>Human verification<\/td><td>Bot protection<\/td><td>Annoying for users<\/td><\/tr><tr><td><strong>API Key Quotas<\/strong><\/td><td>Daily\/monthly limits<\/td><td>Granular<\/td><td>Requires account management<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udfe2 When to Choose Rate Limiting?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>When request <strong>volume control<\/strong> is needed.<\/li>\n\n\n\n<li>When handling <strong>untrusted public access<\/strong>.<\/li>\n\n\n\n<li>To enforce <strong>SLA compliance<\/strong> and avoid overage.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>9. Conclusion<\/strong><\/h2>\n\n\n\n<p>Rate limiting is a foundational building block in <strong>DevSecOps<\/strong>, ensuring that APIs and services remain secure, fair, and performant. By integrating rate limits at multiple layers\u2014from API Gateway to microservices\u2014you protect your stack from abuse while enabling observability and compliance.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction &amp; Overview \u2705 What is Rate Limiting? Rate limiting is a technique used to control the rate at [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-409","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Rate Limiting in DevSecOps - SRE School<\/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:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rate Limiting in DevSecOps - SRE School\" \/>\n<meta property=\"og:description\" content=\"1. Introduction &amp; Overview \u2705 What is Rate Limiting? Rate limiting is a technique used to control the rate at [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/\" \/>\n<meta property=\"og:site_name\" content=\"SRE School\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-24T06:53:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-05T07:29:43+00:00\" \/>\n<meta name=\"author\" content=\"priteshgeek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"priteshgeek\" \/>\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\":\"WebPage\",\"@id\":\"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/\",\"url\":\"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/\",\"name\":\"Rate Limiting in DevSecOps - SRE School\",\"isPartOf\":{\"@id\":\"https:\/\/sreschool.com\/blog\/#website\"},\"datePublished\":\"2025-06-24T06:53:58+00:00\",\"dateModified\":\"2026-05-05T07:29:43+00:00\",\"author\":{\"@id\":\"https:\/\/sreschool.com\/blog\/#\/schema\/person\/6a53e3870889dd6a65b2e04b7bc3d7db\"},\"breadcrumb\":{\"@id\":\"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/sreschool.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rate Limiting in DevSecOps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sreschool.com\/blog\/#website\",\"url\":\"https:\/\/sreschool.com\/blog\/\",\"name\":\"SRESchool\",\"description\":\"Master SRE. Build Resilient Systems. Lead the Future of Reliability\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sreschool.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/sreschool.com\/blog\/#\/schema\/person\/6a53e3870889dd6a65b2e04b7bc3d7db\",\"name\":\"priteshgeek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/sreschool.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/231a0e8b7a02636f2fbacf8dcf4494cb1cc0d49ecc9a8165fbaeaeeaf102641a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/231a0e8b7a02636f2fbacf8dcf4494cb1cc0d49ecc9a8165fbaeaeeaf102641a?s=96&d=mm&r=g\",\"caption\":\"priteshgeek\"},\"url\":\"https:\/\/sreschool.com\/blog\/author\/priteshgeek\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rate Limiting in DevSecOps - SRE School","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:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/","og_locale":"en_US","og_type":"article","og_title":"Rate Limiting in DevSecOps - SRE School","og_description":"1. Introduction &amp; Overview \u2705 What is Rate Limiting? Rate limiting is a technique used to control the rate at [&hellip;]","og_url":"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/","og_site_name":"SRE School","article_published_time":"2025-06-24T06:53:58+00:00","article_modified_time":"2026-05-05T07:29:43+00:00","author":"priteshgeek","twitter_card":"summary_large_image","twitter_misc":{"Written by":"priteshgeek","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/","url":"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/","name":"Rate Limiting in DevSecOps - SRE School","isPartOf":{"@id":"https:\/\/sreschool.com\/blog\/#website"},"datePublished":"2025-06-24T06:53:58+00:00","dateModified":"2026-05-05T07:29:43+00:00","author":{"@id":"https:\/\/sreschool.com\/blog\/#\/schema\/person\/6a53e3870889dd6a65b2e04b7bc3d7db"},"breadcrumb":{"@id":"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/sreschool.com\/blog\/rate-limiting-in-devsecops\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sreschool.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Rate Limiting in DevSecOps"}]},{"@type":"WebSite","@id":"https:\/\/sreschool.com\/blog\/#website","url":"https:\/\/sreschool.com\/blog\/","name":"SRESchool","description":"Master SRE. Build Resilient Systems. Lead the Future of Reliability","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sreschool.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":"Person","@id":"https:\/\/sreschool.com\/blog\/#\/schema\/person\/6a53e3870889dd6a65b2e04b7bc3d7db","name":"priteshgeek","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/sreschool.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/231a0e8b7a02636f2fbacf8dcf4494cb1cc0d49ecc9a8165fbaeaeeaf102641a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/231a0e8b7a02636f2fbacf8dcf4494cb1cc0d49ecc9a8165fbaeaeeaf102641a?s=96&d=mm&r=g","caption":"priteshgeek"},"url":"https:\/\/sreschool.com\/blog\/author\/priteshgeek\/"}]}},"_links":{"self":[{"href":"https:\/\/sreschool.com\/blog\/wp-json\/wp\/v2\/posts\/409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sreschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sreschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sreschool.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sreschool.com\/blog\/wp-json\/wp\/v2\/comments?post=409"}],"version-history":[{"count":1,"href":"https:\/\/sreschool.com\/blog\/wp-json\/wp\/v2\/posts\/409\/revisions"}],"predecessor-version":[{"id":410,"href":"https:\/\/sreschool.com\/blog\/wp-json\/wp\/v2\/posts\/409\/revisions\/410"}],"wp:attachment":[{"href":"https:\/\/sreschool.com\/blog\/wp-json\/wp\/v2\/media?parent=409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sreschool.com\/blog\/wp-json\/wp\/v2\/categories?post=409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sreschool.com\/blog\/wp-json\/wp\/v2\/tags?post=409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}