{"id":135294,"date":"2024-09-05T16:01:54","date_gmt":"2024-09-05T10:31:54","guid":{"rendered":"https:\/\/www.vskills.in\/certification\/tutorial\/?page_id=135294"},"modified":"2024-09-05T16:01:55","modified_gmt":"2024-09-05T10:31:55","slug":"organizing-api-files-with-apirouter","status":"publish","type":"page","link":"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/","title":{"rendered":"Organizing API Files with APIRouter"},"content":{"rendered":"\n<p>As your FastAPI application grows, it&#8217;s crucial to maintain a well-organized and modular structure. One effective way to achieve this is by using the <code class=\"\">APIRouter<\/code> class. This class allows you to group related path operations together, making your code more manageable and easier to understand.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Creating APIRouter Instances<\/strong><\/h2>\n\n\n\n<p>To create an <code class=\"\">APIRouter<\/code> instance, import it from the <code class=\"\">fastapi<\/code> module:<\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from fastapi import APIRouter\n<\/code><\/pre>\n\n\n\n<p>Then, create an instance with an optional prefix and tags:<\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>router = APIRouter(\n    prefix=\"\/users\",\n    tags=&#91;\"Users\"]\n)\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <code class=\"\">prefix<\/code> argument specifies the base path for the router.<\/li>\n\n\n\n<li>The <code class=\"\">tags<\/code> argument is used for documentation purposes and can be helpful for grouping related endpoints.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Defining Path Operations<\/strong><\/h2>\n\n\n\n<p>You can define path operations within the <code class=\"\">APIRouter<\/code> instance using the familiar decorators:<\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@router.get(\"\/\")\ndef read_users():\n    # ...\n\n@router.post(\"\/\")\ndef create_user(user: User):\n    # ...\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Including Routers in the Main Application<\/strong><\/h2>\n\n\n\n<p>To include a router in your main application, use the <code class=\"\">include_router<\/code> method:<\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from app import users_router\n\napp = FastAPI()\napp.include_router(users_router.router)\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Benefits of Using APIRouter<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Modularity:<\/strong> Encapsulate related endpoints into separate modules.<\/li>\n\n\n\n<li><strong>Reusability:<\/strong> Create reusable routers that can be imported and included in different parts of your application.<\/li>\n\n\n\n<li><strong>Documentation:<\/strong> Use tags to organize endpoints and improve API documentation.<\/li>\n\n\n\n<li><strong>Maintainability:<\/strong> Make it easier to manage and update your API as it grows.<\/li>\n<\/ul>\n\n\n\n<p><strong>Example:<\/strong><\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># users\/routes.py\nfrom fastapi import APIRouter, HTTPException\nfrom app.models import User\n\nrouter = APIRouter(\n    prefix=\"\/users\",\n    tags=&#91;\"Users\"]\n)\n\n@router.get(\"\/\")\ndef read_users():\n    return {\"users\": &#91;{\"id\": 1, \"name\": \"Alice\"}, {\"id\": 2, \"name\": \"Bob\"}]}\n\n@router.post(\"\/\")\ndef create_user(user: User):\n    # ...\n<\/code><\/pre>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># main.py\nfrom fastapi import FastAPI\nfrom app import users_router\n\napp = FastAPI()\napp.include_router(users_router.router)\n<\/code><\/pre>\n\n\n\n<p>By effectively using <code class=\"\">APIRouter<\/code>, you can structure your FastAPI application in a more organized and maintainable way. This will make it easier to develop, test, and scale your API as your project grows.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As your FastAPI application grows, it&#8217;s crucial to maintain a well-organized and modular structure. One effective way to achieve this is by using the APIRouter class. This class allows you to group related path operations together, making your code more manageable and easier to understand. Creating APIRouter Instances To create an APIRouter instance, import it&#8230;<\/p>\n","protected":false},"author":16,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-135294","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Organizing API Files with APIRouter - Tutorial<\/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.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Organizing API Files with APIRouter - Tutorial\" \/>\n<meta property=\"og:description\" content=\"As your FastAPI application grows, it&#8217;s crucial to maintain a well-organized and modular structure. One effective way to achieve this is by using the APIRouter class. This class allows you to group related path operations together, making your code more manageable and easier to understand. Creating APIRouter Instances To create an APIRouter instance, import it...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/\" \/>\n<meta property=\"og:site_name\" content=\"Tutorial\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vskills.in\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-05T10:31:55+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/\",\"name\":\"Organizing API Files with APIRouter - Tutorial\",\"isPartOf\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\"},\"datePublished\":\"2024-09-05T10:31:54+00:00\",\"dateModified\":\"2024-09-05T10:31:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Organizing API Files with APIRouter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"name\":\"Tutorial\",\"description\":\"Vskills - A initiative in elearning and certification\",\"publisher\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\",\"name\":\"Vskills\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"contentUrl\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"width\":73,\"height\":55,\"caption\":\"Vskills\"},\"image\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/vskills.in\/\",\"https:\/\/x.com\/vskills_in\",\"https:\/\/www.linkedin.com\/company-beta\/1371554\/\",\"https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Organizing API Files with APIRouter - Tutorial","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.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/","og_locale":"en_US","og_type":"article","og_title":"Organizing API Files with APIRouter - Tutorial","og_description":"As your FastAPI application grows, it&#8217;s crucial to maintain a well-organized and modular structure. One effective way to achieve this is by using the APIRouter class. This class allows you to group related path operations together, making your code more manageable and easier to understand. Creating APIRouter Instances To create an APIRouter instance, import it...","og_url":"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/","og_site_name":"Tutorial","article_publisher":"https:\/\/www.facebook.com\/vskills.in\/","article_modified_time":"2024-09-05T10:31:55+00:00","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/","name":"Organizing API Files with APIRouter - Tutorial","isPartOf":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website"},"datePublished":"2024-09-05T10:31:54+00:00","dateModified":"2024-09-05T10:31:55+00:00","breadcrumb":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/organizing-api-files-with-apirouter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vskills.in\/certification\/tutorial\/"},{"@type":"ListItem","position":2,"name":"Organizing API Files with APIRouter"}]},{"@type":"WebSite","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","name":"Tutorial","description":"Vskills - A initiative in elearning and certification","publisher":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization","name":"Vskills","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","contentUrl":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","width":73,"height":55,"caption":"Vskills"},"image":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/vskills.in\/","https:\/\/x.com\/vskills_in","https:\/\/www.linkedin.com\/company-beta\/1371554\/","https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw"]}]}},"_links":{"self":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/135294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/comments?post=135294"}],"version-history":[{"count":2,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/135294\/revisions"}],"predecessor-version":[{"id":135307,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/135294\/revisions\/135307"}],"wp:attachment":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/media?parent=135294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/categories?post=135294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/tags?post=135294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}