{"id":906,"date":"2023-12-29T12:29:38","date_gmt":"2023-12-29T12:29:38","guid":{"rendered":"https:\/\/www.softwaretraininginchennai.com\/blog\/?p=906"},"modified":"2023-12-29T12:29:38","modified_gmt":"2023-12-29T12:29:38","slug":"dependency-injection-in-asp-net-core","status":"publish","type":"post","link":"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/","title":{"rendered":"Dependency Injection in ASP.NET Core"},"content":{"rendered":"<h3>Building Modular and Testable Applications with Dependency Injection in ASP.NET Core<\/h3>\n<h5><strong><span style=\"color: #0000ff;\">Introduction:<\/span><\/strong><\/h5>\n<p>A key component of developing ASP.NET Core applications that encourages modularity, maintainability, and testability is dependency injection, or DI. In this post, we&#8217;ll examine the foundations of dependency injection in ASP.NET Core, as well as its advantages and practical uses for developing organized and expandable applications.<\/p>\n<h5><span style=\"color: #0000ff;\"><strong>Understanding Dependency Injection:<\/strong><\/span><\/h5>\n<p>Dependency injection is a design pattern that assists in the management of dependencies among various components in a software system. It refers to the technique of supplying the objects that a class requires (its dependencies) from outside rather than creating them within the class itself in the context of ASP.NET Core. This method makes classes more modular and testable.<\/p>\n<h5><strong><span style=\"color: #0000ff;\">Benefits of Dependency Injection in ASP.NET Core:<\/span><\/strong><\/h5>\n<h6><span style=\"color: #993300;\">1. Modular Code: <\/span>By injecting dependencies into classes, each class can concentrate on its own functionality without being tethered to the implementation details of its dependencies. As a result, the code becomes more modular and maintainable.<\/h6>\n<h6><span style=\"color: #993300;\">2. Testability: <\/span>Dependency injection makes unit testing easier by allowing developers to replace real implementations of dependencies with mock or test implementations. This facilitates the isolation and testing of individual components.<\/h6>\n<h6><span style=\"color: #993300;\">3. Extensibility: <\/span>It is easier to extend an application&#8217;s functionality with dependency injection by introducing new components or swapping out existing ones. This is especially useful when evolving and scaling an application.<\/h6>\n<h5><strong><span style=\"color: #0000ff;\">Implementing Dependency Injection in ASP.NET Core:<\/span><\/strong><\/h5>\n<h6><span style=\"color: #993300;\">1. Service Registration: <\/span><\/h6>\n<p>Services in ASP.NET Core are registered at application startup in the dependency injection container. Services can be added to the container via the &#8216;ConfigureServices&#8217; method in the &#8216;Startup&#8217; class.<\/p>\n<p><code><span style=\"color: #ff0000;\">public void ConfigureServices(IServiceCollection services)<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">{<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 services.AddTransient&lt;IMyService, MyService&gt;();<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 \/\/ Add more services...<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">}<\/span><\/code><\/p>\n<p>&#8216;IMyService&#8217; is the interface in this example, and &#8216;MyService&#8217; is the matching implementation. &#8216;Transient&#8217; means that each time a request is made, a new instance of &#8216;MyService&#8217; is created.<\/p>\n<h6><span style=\"color: #993300;\">2. Constructor Injection: <\/span><\/h6>\n<p>Use the constructor of a class to inject dependencies into it. The necessary dependencies are automatically provided by the DI container when a class instance is created.<\/p>\n<p><code><span style=\"color: #ff0000;\">public class MyController : Controller<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">{<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 private readonly IMyService _myService;<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 public MyController(IMyService myService)<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 {<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 _myService = myService;<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 }<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 \/\/ Controller actions...<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">}<\/span><\/code><\/p>\n<h6><span style=\"color: #993300;\">3. Using Dependency Injection in Middleware: <\/span><\/h6>\n<p>Dependency injection can also help middleware components in the ASP.NET Core request processing pipeline. The &#8216;Invoke&#8217; method can have services injected into it.<\/p>\n<p><code><span style=\"color: #ff0000;\">public class MyMiddleware<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">{<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 private readonly RequestDelegate _next;<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 private readonly IMyService _myService;<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 public MyMiddleware(RequestDelegate next, IMyService myService)<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 {<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 _next = next;<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 _myService = myService;<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 }<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 public async Task Invoke(HttpContext context)<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 {<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Use _myService...<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">await _next(context);<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">\u00a0\u00a0\u00a0 }<\/span><\/code><\/p>\n<p><code><span style=\"color: #ff0000;\">}<\/span><\/code><\/p>\n<h5><strong><span style=\"color: #0000ff;\">Scopes and Lifetimes of Services:<\/span><\/strong><\/h5>\n<p>Several service lifetimes, such as &#8216;Transient&#8217;, &#8216;Scoped&#8217;, and &#8216;Singleton&#8217;, are supported by ASP.NET Core. Managing the lifespan of service instances requires an understanding of these lifetimes.<\/p>\n<h6><span style=\"color: #993300;\">1. Transient: <\/span>Whenever an instance is requested, a new one is created.<\/h6>\n<h6><span style=\"color: #993300;\">2. Scoped: <\/span>Each request generates a single instance. Within the parameters of an HTTP request, it is shared.<\/h6>\n<h6><span style=\"color: #993300;\">3. Singleton: <\/span>For the duration of the application, only one instance is created.<\/h6>\n<h5><strong><span style=\"color: #0000ff;\">Best Practices for Dependency Injection in ASP.NET Core:<\/span><\/strong><\/h5>\n<p><span style=\"color: #993300;\">1. Choose Constructor Injection:<\/span> For improved readability and maintainability, inject dependencies via the constructor.<\/p>\n<p><span style=\"color: #993300;\">2. Employ Interfaces:<\/span> Write code that checks against interfaces as opposed to specific implementations. This encourages testability and flexibility.<\/p>\n<p><span style=\"color: #993300;\">3. Avoid the Service Location Anti-Pattern:<\/span> Avoid the &#8216;ServiceLocator&#8217; pattern, which involves retrieving services directly from the container within a class.<\/p>\n<p><span style=\"color: #993300;\">4. Register Services as Interfaces:<\/span> When registering services, use interfaces rather than concrete implementations.<\/p>\n<p><code><span style=\"color: #ff0000;\">services.AddTransient&lt;IMyService, MyService&gt;();<\/span><\/code><\/p>\n<h5><strong><span style=\"color: #0000ff;\">\u00a0 Conclusion:<\/span><\/strong><\/h5>\n<p>Dependency injection is a powerful design pattern that improves the design, testability, and maintainability of ASP.NET Core applications significantly. Developers can create modular, extensible, and testable applications by leveraging the built-in dependency injection container. Understanding dependency injection principles is critical for developing robust and scalable ASP.NET Core applications.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Building Modular and Testable Applications with Dependency Injection in ASP.NET Core Introduction: A key component of developing ASP.NET Core applications that encourages modularity, maintainability, and testability is dependency injection, or DI. In this post, we&#8217;ll examine the foundations of dependency injection in ASP.NET Core, as well as its advantages and practical uses for developing organized [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[277,2,3,281,299,295,298,297,4,6,279,235],"tags":[275,276,285,289],"class_list":["post-906","post","type-post","status-publish","format-standard","hentry","category-asp-net-core","category-dot-net-training","category-dot-net-training-in-chennai","category-dot-net-training-in-india","category-dotnet-training-in-karaikudi","category-dotnet-training-in-madurai","category-dotnet-training-in-pudukottai","category-dotnet-training-in-trichy","category-information-on-dotnet","category-mvc-training-tutorials","category-oop-concept","category-rdbms","tag-asp-net-framework","tag-entity-framework","tag-learn-sql-server-online","tag-mvc-framework"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dependency Injection in ASP.NET Core | Maria Academy<\/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:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dependency Injection in ASP.NET Core | Maria Academy\" \/>\n<meta property=\"og:description\" content=\"Building Modular and Testable Applications with Dependency Injection in ASP.NET Core Introduction: A key component of developing ASP.NET Core applications that encourages modularity, maintainability, and testability is dependency injection, or DI. In this post, we&#8217;ll examine the foundations of dependency injection in ASP.NET Core, as well as its advantages and practical uses for developing organized [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/\" \/>\n<meta property=\"og:site_name\" content=\"Maria Academy\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DotnetTrainingChennai\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-29T12:29:38+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dotnettraining2\" \/>\n<meta name=\"twitter:site\" content=\"@dotnettraining2\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/#\/schema\/person\/e7dbda3490333ae356b6ad09076c8a6e\"},\"headline\":\"Dependency Injection in ASP.NET Core\",\"datePublished\":\"2023-12-29T12:29:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/\"},\"wordCount\":558,\"commentCount\":0,\"keywords\":[\"asp.net framework\",\"entity framework\",\"Learn SQL server online\",\"MVC framework\"],\"articleSection\":[\"ASP.NET Core\",\"dot net training\",\"dot net training in chennai\",\"Dot Net training in india\",\"dotnet training in karaikudi\",\"dotnet training in madurai\",\"dotnet training in pudukottai\",\"dotnet training in Trichy\",\"information on dotnet\",\"MVC Training Tutorials\",\"OOP Concept\",\"RDBMS\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/\",\"url\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/\",\"name\":\"Dependency Injection in ASP.NET Core | Maria Academy\",\"isPartOf\":{\"@id\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/#website\"},\"datePublished\":\"2023-12-29T12:29:38+00:00\",\"author\":{\"@id\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/#\/schema\/person\/e7dbda3490333ae356b6ad09076c8a6e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dependency Injection in ASP.NET Core\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/#website\",\"url\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/\",\"name\":\"Maria Academy\",\"description\":\"Dot Net Training in Chennai, Best Dot Net Training Institute in Chennai, .Net Training in Chennai\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.softwaretraininginchennai.com\/blog\/#\/schema\/person\/e7dbda3490333ae356b6ad09076c8a6e\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f68fba18793457e0192658e2fe53431c0fb4a1d551aef61c57c1847324110d80?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f68fba18793457e0192658e2fe53431c0fb4a1d551aef61c57c1847324110d80?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f68fba18793457e0192658e2fe53431c0fb4a1d551aef61c57c1847324110d80?s=96&d=mm&r=g\",\"caption\":\"admin\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dependency Injection in ASP.NET Core | Maria Academy","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:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/","og_locale":"en_US","og_type":"article","og_title":"Dependency Injection in ASP.NET Core | Maria Academy","og_description":"Building Modular and Testable Applications with Dependency Injection in ASP.NET Core Introduction: A key component of developing ASP.NET Core applications that encourages modularity, maintainability, and testability is dependency injection, or DI. In this post, we&#8217;ll examine the foundations of dependency injection in ASP.NET Core, as well as its advantages and practical uses for developing organized [&hellip;]","og_url":"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/","og_site_name":"Maria Academy","article_publisher":"https:\/\/www.facebook.com\/DotnetTrainingChennai","article_published_time":"2023-12-29T12:29:38+00:00","author":"admin","twitter_card":"summary_large_image","twitter_creator":"@dotnettraining2","twitter_site":"@dotnettraining2","twitter_misc":{"Written by":"admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/#article","isPartOf":{"@id":"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/"},"author":{"name":"admin","@id":"https:\/\/www.softwaretraininginchennai.com\/blog\/#\/schema\/person\/e7dbda3490333ae356b6ad09076c8a6e"},"headline":"Dependency Injection in ASP.NET Core","datePublished":"2023-12-29T12:29:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/"},"wordCount":558,"commentCount":0,"keywords":["asp.net framework","entity framework","Learn SQL server online","MVC framework"],"articleSection":["ASP.NET Core","dot net training","dot net training in chennai","Dot Net training in india","dotnet training in karaikudi","dotnet training in madurai","dotnet training in pudukottai","dotnet training in Trichy","information on dotnet","MVC Training Tutorials","OOP Concept","RDBMS"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/","url":"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/","name":"Dependency Injection in ASP.NET Core | Maria Academy","isPartOf":{"@id":"https:\/\/www.softwaretraininginchennai.com\/blog\/#website"},"datePublished":"2023-12-29T12:29:38+00:00","author":{"@id":"https:\/\/www.softwaretraininginchennai.com\/blog\/#\/schema\/person\/e7dbda3490333ae356b6ad09076c8a6e"},"breadcrumb":{"@id":"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.softwaretraininginchennai.com\/blog\/dependency-injection-in-asp-net-core\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.softwaretraininginchennai.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Dependency Injection in ASP.NET Core"}]},{"@type":"WebSite","@id":"https:\/\/www.softwaretraininginchennai.com\/blog\/#website","url":"https:\/\/www.softwaretraininginchennai.com\/blog\/","name":"Maria Academy","description":"Dot Net Training in Chennai, Best Dot Net Training Institute in Chennai, .Net Training in Chennai","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.softwaretraininginchennai.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.softwaretraininginchennai.com\/blog\/#\/schema\/person\/e7dbda3490333ae356b6ad09076c8a6e","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f68fba18793457e0192658e2fe53431c0fb4a1d551aef61c57c1847324110d80?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f68fba18793457e0192658e2fe53431c0fb4a1d551aef61c57c1847324110d80?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f68fba18793457e0192658e2fe53431c0fb4a1d551aef61c57c1847324110d80?s=96&d=mm&r=g","caption":"admin"}}]}},"_links":{"self":[{"href":"https:\/\/www.softwaretraininginchennai.com\/blog\/wp-json\/wp\/v2\/posts\/906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.softwaretraininginchennai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.softwaretraininginchennai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.softwaretraininginchennai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.softwaretraininginchennai.com\/blog\/wp-json\/wp\/v2\/comments?post=906"}],"version-history":[{"count":8,"href":"https:\/\/www.softwaretraininginchennai.com\/blog\/wp-json\/wp\/v2\/posts\/906\/revisions"}],"predecessor-version":[{"id":914,"href":"https:\/\/www.softwaretraininginchennai.com\/blog\/wp-json\/wp\/v2\/posts\/906\/revisions\/914"}],"wp:attachment":[{"href":"https:\/\/www.softwaretraininginchennai.com\/blog\/wp-json\/wp\/v2\/media?parent=906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.softwaretraininginchennai.com\/blog\/wp-json\/wp\/v2\/categories?post=906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.softwaretraininginchennai.com\/blog\/wp-json\/wp\/v2\/tags?post=906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}