{"id":135443,"date":"2024-09-06T14:15:42","date_gmt":"2024-09-06T08:45:42","guid":{"rendered":"https:\/\/www.vskills.in\/certification\/tutorial\/?page_id=135443"},"modified":"2024-09-06T14:15:43","modified_gmt":"2024-09-06T08:45:43","slug":"sorting-data-with-query-string-arguments-and-enum","status":"publish","type":"page","link":"https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/","title":{"rendered":"Sorting Data with Query String Arguments and Enum"},"content":{"rendered":"\n<p>Allowing users to sort data based on different criteria is a common requirement in web applications. In FastAPI, you can use query string arguments and Enums to provide flexible sorting options. This guide will demonstrate how to implement sorting in your FastAPI endpoints.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Defining an Enum for Sorting Options<\/strong><\/h2>\n\n\n\n<p>Create an Enum to represent the available sorting options:<\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from enum import Enum\n\nclass SortOrder(Enum):\n    asc = \"asc\"\n    desc = \"desc\"\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Adding a Query String Argument<\/strong><\/h2>\n\n\n\n<p>Modify your endpoint to accept a <code class=\"\">sort_by<\/code> query string argument:<\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@app.get(\"\/items\")\nasync def get_items(sort_by: Optional&#91;SortOrder] = Query(None)):\n    # ...\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Using the Query String Argument<\/strong><\/h2>\n\n\n\n<p>Within your endpoint, use the <code class=\"\">sort_by<\/code> argument to construct the appropriate SQLAlchemy query:<\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if sort_by == SortOrder.asc:\n    items = await db.query(Item).order_by(Item.name.asc()).all()\nelif sort_by == SortOrder.desc:\n    items = await db.query(Item).order_by(Item.name.desc()).all()\nelse:\n    items = await db.query(Item).all()\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Additional Factors<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Default Sorting:<\/strong> Specify a default sorting order if no <code class=\"\">sort_by<\/code> argument is provided.<\/li>\n\n\n\n<li><strong>Multiple Sorting Criteria:<\/strong> Allow users to sort by multiple fields by accepting a list of sorting options.<\/li>\n\n\n\n<li><strong>Case Sensitivity:<\/strong> Consider using case-insensitive sorting if applicable.<\/li>\n\n\n\n<li><strong>Validation:<\/strong> Validate the <code class=\"\">sort_by<\/code> argument to ensure it&#8217;s a valid Enum value.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Example with Multiple Sorting Criteria<\/strong><\/h2>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@app.get(\"\/items\")\nasync def get_items(sort_by: Optional&#91;List&#91;SortOrder]] = Query(None)):\n    query = db.query(Item)\n    if sort_by:\n        for field, order in sort_by:\n            if field == \"name\":\n                query = query.order_by(getattr(Item.name, order)())\n            elif field == \"price\":\n                query = query.order_by(getattr(Item.price, order)())\n    items = await query.all()\n<\/code><\/pre>\n\n\n\n<p>By using query string arguments and Enums, you can provide users with a flexible and intuitive way to sort data in your FastAPI applications. This enhances the user experience and makes your API more user-friendly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Allowing users to sort data based on different criteria is a common requirement in web applications. In FastAPI, you can use query string arguments and Enums to provide flexible sorting options. This guide will demonstrate how to implement sorting in your FastAPI endpoints. Defining an Enum for Sorting Options Create an Enum to represent the&#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-135443","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>Sorting Data with Query String Arguments and Enum - 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\/sorting-data-with-query-string-arguments-and-enum\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sorting Data with Query String Arguments and Enum - Tutorial\" \/>\n<meta property=\"og:description\" content=\"Allowing users to sort data based on different criteria is a common requirement in web applications. In FastAPI, you can use query string arguments and Enums to provide flexible sorting options. This guide will demonstrate how to implement sorting in your FastAPI endpoints. Defining an Enum for Sorting Options Create an Enum to represent the...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/\" \/>\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-06T08:45:43+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\/sorting-data-with-query-string-arguments-and-enum\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/\",\"name\":\"Sorting Data with Query String Arguments and Enum - Tutorial\",\"isPartOf\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\"},\"datePublished\":\"2024-09-06T08:45:42+00:00\",\"dateModified\":\"2024-09-06T08:45:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sorting Data with Query String Arguments and Enum\"}]},{\"@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":"Sorting Data with Query String Arguments and Enum - 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\/sorting-data-with-query-string-arguments-and-enum\/","og_locale":"en_US","og_type":"article","og_title":"Sorting Data with Query String Arguments and Enum - Tutorial","og_description":"Allowing users to sort data based on different criteria is a common requirement in web applications. In FastAPI, you can use query string arguments and Enums to provide flexible sorting options. This guide will demonstrate how to implement sorting in your FastAPI endpoints. Defining an Enum for Sorting Options Create an Enum to represent the...","og_url":"https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/","og_site_name":"Tutorial","article_publisher":"https:\/\/www.facebook.com\/vskills.in\/","article_modified_time":"2024-09-06T08:45:43+00:00","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/","name":"Sorting Data with Query String Arguments and Enum - Tutorial","isPartOf":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website"},"datePublished":"2024-09-06T08:45:42+00:00","dateModified":"2024-09-06T08:45:43+00:00","breadcrumb":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/sorting-data-with-query-string-arguments-and-enum\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vskills.in\/certification\/tutorial\/"},{"@type":"ListItem","position":2,"name":"Sorting Data with Query String Arguments and Enum"}]},{"@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\/135443","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=135443"}],"version-history":[{"count":2,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/135443\/revisions"}],"predecessor-version":[{"id":135466,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/135443\/revisions\/135466"}],"wp:attachment":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/media?parent=135443"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/categories?post=135443"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/tags?post=135443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}