{"id":3892,"date":"2021-01-22T04:47:17","date_gmt":"2021-01-22T04:47:17","guid":{"rendered":"https:\/\/studysection.com\/blog\/?p=3892"},"modified":"2021-01-22T05:57:40","modified_gmt":"2021-01-22T05:57:40","slug":"build-rest-apis-using-laravel-orion","status":"publish","type":"post","link":"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/","title":{"rendered":"Build REST APIs using Laravel Orion"},"content":{"rendered":"<p>In Laravel to create APIs, we keep writing the same code again and again. Firstly we create a model, then a controller and then create\/update\/delete\/get methods for the model. These steps are repeated again and again whenever we create a new model.<br \/>\nLaravel Orion allows us to build fully-featured REST APIs in a matter of time by providing common endpoints for CRUD operations, soft deletable models, and a comprehensive search. It works with Laravel solutions like Requests for <a href=\"https:\/\/studysection.com\/blog\/handling-exceptions-in-mvc-application\/\">handling<\/a> validation, Policies for handling authorization, and Resources for transforming responses. And it also works for complex relations like \u201cbelongsToMany\u201d and \u201cmorphToMany\u201d.<\/p>\n<ol>\n<li>Install Laravel Orion in your existing laravel project by using the below command:<br \/>\n<code>composer require tailflow\/laravel-orion<\/code><\/li>\n<li>Let&#8217;s assume we have a model User and we want to build APIs for it.<\/li>\n<li>Create \u201cUsersController\u201d and extend it from \u201cOrion\\Http\\Controllers\\Controller\u201d<br \/>\n<code>&lt;?php<br \/>\nnamespace App\\Http\\Controllers;<br \/>\nuse App\\Models\\User;<br \/>\nuse Orion\\Http\\Controllers\\Controller;<br \/>\nclass UsersController extends Controller<br \/>\n{<br \/>\n}<\/code><\/li>\n<li>Then define the \u201cprotected $model\u201d property and set it to the User model class name. The controller should look like below<br \/>\n<code>&lt;?php<br \/>\nnamespace App\\Http\\Controllers;<br \/>\nuse Orion\\Http\\Controllers\\Controller;<br \/>\nuse App\\Models\\User;<br \/>\nclass UsersController extends Controller<br \/>\n{<br \/>\n    \/**<br \/>\n     * Fully-qualified model class name<br \/>\n     *\/<br \/>\n    protected $model = User::class; \/\/ or \"App\\Models\\User\"<br \/>\n}<\/code><\/li>\n<li>Now, register the routes in api.php by pasting the following code.<br \/>\n<code>&lt;?php<br \/>\nuse Illuminate\\Support\\Facades\\Route;<br \/>\nuse Orion\\Facades\\Orion;<br \/>\nuse App\\Http\\Controllers\\UsersController;<br \/>\nRoute::group(['as' => 'api.'], function() {<br \/>\n    Orion::resource('users', \u2018UsersController\u2019);<br \/>\n});<\/code><\/li>\n<li>Now you can perform create\/list\/search\/view\/update\/delete users via REST API. Try to create a user via (POST) <b>https:\/\/<your app url>\/api\/users endpoint<\/b><\/li>\n<li>To list all available routes, you can run below artisan command.<br \/>\n<code>php artisan route:list<\/code><br \/>\nYou will get all registered routes as shown below.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/01\/data.png\" alt=\"data\"\/>\n<\/li>\n<\/ol>\n<p><em style=\"color:red;\">Note: Make sure to have policy created and registered for the model you are exposing via the API or consider using DisableAuthorization trait (only for local testing) to avoid getting 403 error, if the policy is not registered or incorrect.<\/em><\/p>\n<p><small><em>StudySection gives an opportunity to beginners and experts in .NET framework to go through StudySection\u2019s <a href=\"https:\/\/www.studysection.com\/c-sharp-net-web-developer-advanced-diploma\">.NET Certification Exam<\/a> and get a .NET certification for enhancement of career in programming. If you have knowledge of the .NET framework then you can get a certificate through an online exam at StudySection.<\/em><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Laravel to create APIs, we keep writing the same code again and again. Firstly we create a model, then<\/p>\n","protected":false},"author":1,"featured_media":3899,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[618,619],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>StudySection Blog - Build REST APIs using Laravel Orion<\/title>\n<meta name=\"description\" content=\"Laravel Orion helps build full featured REST APIs quickly by CRUD operations common endpoints, soft deletable models and comprehensive search\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"StudySection Blog - Build REST APIs using Laravel Orion\" \/>\n<meta property=\"og:description\" content=\"Laravel Orion helps build full featured REST APIs quickly by CRUD operations common endpoints, soft deletable models and comprehensive search\" \/>\n<meta property=\"og:url\" content=\"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Posts on famous people, innovations and educational topics\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/studysection\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-22T04:47:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-22T05:57:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/01\/orion.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin-studysection-blog\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@studysection\" \/>\n<meta name=\"twitter:site\" content=\"@studysection\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin-studysection-blog\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/\"},\"author\":{\"name\":\"admin-studysection-blog\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\"},\"headline\":\"Build REST APIs using Laravel Orion\",\"datePublished\":\"2021-01-22T04:47:17+00:00\",\"dateModified\":\"2021-01-22T05:57:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/\"},\"wordCount\":314,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"keywords\":[\"Laravel Orion\",\"REST APIs\"],\"articleSection\":[\"Learn and Grow\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/\",\"url\":\"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/\",\"name\":\"StudySection Blog - Build REST APIs using Laravel Orion\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/#website\"},\"datePublished\":\"2021-01-22T04:47:17+00:00\",\"dateModified\":\"2021-01-22T05:57:40+00:00\",\"description\":\"Laravel Orion helps build full featured REST APIs quickly by CRUD operations common endpoints, soft deletable models and comprehensive search\",\"breadcrumb\":{\"@id\":\"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/studysection.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build REST APIs using Laravel Orion\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/studysection.com\/blog\/#website\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"name\":\"Blog Posts on famous people, innovations and educational topics\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/studysection.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/studysection.com\/blog\/#organization\",\"name\":\"StudySection\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"contentUrl\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"width\":920,\"height\":440,\"caption\":\"StudySection\"},\"image\":{\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/studysection\",\"https:\/\/twitter.com\/studysection\",\"https:\/\/www.instagram.com\/study.section\/\",\"https:\/\/www.linkedin.com\/company\/studysection\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\",\"name\":\"admin-studysection-blog\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"caption\":\"admin-studysection-blog\"},\"url\":\"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"StudySection Blog - Build REST APIs using Laravel Orion","description":"Laravel Orion helps build full featured REST APIs quickly by CRUD operations common endpoints, soft deletable models and comprehensive search","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:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/","og_locale":"en_US","og_type":"article","og_title":"StudySection Blog - Build REST APIs using Laravel Orion","og_description":"Laravel Orion helps build full featured REST APIs quickly by CRUD operations common endpoints, soft deletable models and comprehensive search","og_url":"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/","og_site_name":"Blog Posts on famous people, innovations and educational topics","article_publisher":"https:\/\/www.facebook.com\/studysection","article_published_time":"2021-01-22T04:47:17+00:00","article_modified_time":"2021-01-22T05:57:40+00:00","og_image":[{"width":300,"height":200,"url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/01\/orion.png","type":"image\/png"}],"author":"admin-studysection-blog","twitter_card":"summary_large_image","twitter_creator":"@studysection","twitter_site":"@studysection","twitter_misc":{"Written by":"admin-studysection-blog","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/#article","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/"},"author":{"name":"admin-studysection-blog","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402"},"headline":"Build REST APIs using Laravel Orion","datePublished":"2021-01-22T04:47:17+00:00","dateModified":"2021-01-22T05:57:40+00:00","mainEntityOfPage":{"@id":"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/"},"wordCount":314,"commentCount":0,"publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"keywords":["Laravel Orion","REST APIs"],"articleSection":["Learn and Grow"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/","url":"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/","name":"StudySection Blog - Build REST APIs using Laravel Orion","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/#website"},"datePublished":"2021-01-22T04:47:17+00:00","dateModified":"2021-01-22T05:57:40+00:00","description":"Laravel Orion helps build full featured REST APIs quickly by CRUD operations common endpoints, soft deletable models and comprehensive search","breadcrumb":{"@id":"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/studysection.com\/blog\/build-rest-apis-using-laravel-orion\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/studysection.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Build REST APIs using Laravel Orion"}]},{"@type":"WebSite","@id":"https:\/\/studysection.com\/blog\/#website","url":"https:\/\/studysection.com\/blog\/","name":"Blog Posts on famous people, innovations and educational topics","description":"","publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/studysection.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/studysection.com\/blog\/#organization","name":"StudySection","url":"https:\/\/studysection.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","contentUrl":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","width":920,"height":440,"caption":"StudySection"},"image":{"@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/studysection","https:\/\/twitter.com\/studysection","https:\/\/www.instagram.com\/study.section\/","https:\/\/www.linkedin.com\/company\/studysection"]},{"@type":"Person","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402","name":"admin-studysection-blog","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","caption":"admin-studysection-blog"},"url":"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/"}]}},"views":386,"_links":{"self":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/3892"}],"collection":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/comments?post=3892"}],"version-history":[{"count":7,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/3892\/revisions"}],"predecessor-version":[{"id":3901,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/3892\/revisions\/3901"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media\/3899"}],"wp:attachment":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media?parent=3892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/categories?post=3892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/tags?post=3892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}