{"id":40663,"date":"2019-03-28T09:32:03","date_gmt":"2019-03-28T07:32:03","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=40663"},"modified":"2019-03-28T09:32:41","modified_gmt":"2019-03-28T07:32:41","slug":"api-platform-rest-and-graphql-framework-to-build-modern-api-driven-projects","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/28\/api-platform-rest-and-graphql-framework-to-build-modern-api-driven-projects\/","title":{"rendered":"API Platform &#8211; REST and GraphQL framework to build modern API-driven projects"},"content":{"rendered":"<!-- google_ad_section_start -->\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"330\" data-attachment-id=\"40664\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/28\/api-platform-rest-and-graphql-framework-to-build-modern-api-driven-projects\/api-platform-2-4-1200x600\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600.png?fit=1200%2C600&amp;ssl=1\" data-orig-size=\"1200,600\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"api-platform-2.4-1200&amp;#215;600\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600.png?fit=660%2C330&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600-1024x512.png?resize=660%2C330&#038;ssl=1\" alt=\"\" class=\"wp-image-40664\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600.png?resize=1024%2C512&amp;ssl=1 1024w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600.png?resize=500%2C250&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600.png?resize=768%2C384&amp;ssl=1 768w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600.png?resize=1200%2C600&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/api-platform.com\/\">API Platform<\/a> is a framework for building API-driven projects.  I came across this via <a href=\"https:\/\/dunglas.fr\/2019\/01\/api-platform-2-4\/\">this blog post<\/a> that covers the recent release of v2.4.  The list of features and components is quite extensive:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Read and write support for MongoDB<\/li><li>Read support for Elasticsearch<\/li><li>Message queues support via a number of brokers, including Amazon SQS<\/li><li>Server Push support for HTTP\/2<\/li><li>Full compatibility with OpenAPI v3 (Swagger)<\/li><li>Automated admin interface and project documentation<\/li><li>A variety of components from the Symfony framework<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;m pretty sure that I&#8217;ll be taking this for a spin in the nearest future!<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>API Platform is a framework for building API-driven projects. I came across this via this blog post that covers the recent release of v2.4. The list of features and components is quite extensive: Read and write support for MongoDB Read support for Elasticsearch Message queues support via a number of brokers, including Amazon SQS Server &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/28\/api-platform-rest-and-graphql-framework-to-build-modern-api-driven-projects\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">API Platform &#8211; REST and GraphQL framework to build modern API-driven projects<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"API Platform - REST and GraphQL framework to build modern API-driven projects #WebDev #PHP #API #REST #GraphQL #frameworks","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[3270,3634,2404,3063,3531,3601,38,3224,3602,1330],"keyring_services":[],"class_list":["post-40663","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-amazon-aws","tag-amazon-sqs","tag-api","tag-frameworks","tag-graphql","tag-openapi","tag-php","tag-rest","tag-swagger","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":26132,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/05\/26\/openapi-specification\/","url_meta":{"origin":40663,"position":0},"title":"OpenAPI Specification","author":"Leonid Mamchenkov","date":"May 26, 2016","format":false,"excerpt":"OpenAPI Specification v2.0 - formerly known as\u00a0Swagger RESTful API Documentation Specification. Swagger\u2122 is a project used to describe and document RESTful APIs. The Swagger specification defines a set of files required to describe such an API. These files can then be used by the Swagger-UI project to display the API\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28861,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/10\/15\/documenting-lists-with-swagger\/","url_meta":{"origin":40663,"position":1},"title":"Documenting lists with Swagger","author":"Leonid Mamchenkov","date":"October 15, 2018","format":false,"excerpt":"Swagger is a great tool for documenting APIs.\u00a0 Not only it helps with keeping the documentation complete and up-to-date, but it also provides a handy sandbox for developers to play around with the API directly from the documentation. We use Swagger a lot at work.\u00a0 We've even pushed the bar\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/10\/swagger-500x345.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28518,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/04\/24\/introducing-the-aws-amplify-graphql-client\/","url_meta":{"origin":40663,"position":2},"title":"Introducing the AWS Amplify GraphQL Client","author":"Leonid Mamchenkov","date":"April 24, 2018","format":false,"excerpt":"\"Introducing the AWS Amplify GraphQL Client\" showcases the new GraphQL client that was built by the Amazon Amplify team.\u00a0 It's pretty sweet.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28303,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/01\/09\/github-graphql-api-v4\/","url_meta":{"origin":40663,"position":3},"title":"GitHub GraphQL API v4","author":"Leonid Mamchenkov","date":"January 9, 2018","format":false,"excerpt":"I've briefly mentioned before that GitHub joined the adopters of the GraphQL for their API.\u00a0 Here's the link to the full documentation and more details. GitHub chose GraphQL for our API v4 because it offers significantly more flexibility for our integrators. The ability to define precisely the data you want\u2014and\u00a0only\u00a0the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27662,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/06\/06\/graphql-a-query-language-for-your-api\/","url_meta":{"origin":40663,"position":4},"title":"GraphQL &#8211; a query language for your API","author":"Leonid Mamchenkov","date":"June 6, 2017","format":false,"excerpt":"GraphQL is a query language for the API. \u00a0It's been used by the Facebook mobile app since 2012. \u00a0The specification was open sourced in 2015. \u00a0And now GitHub is getting on board as \u00a0well. \u00a0This looks interesting. https:\/\/www.youtube.com\/watch?v=dsPVrbDHgaY","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/06\/graphql-500x88.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28392,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/02\/19\/quick-guide-to-graphql-for-backend-frontend\/","url_meta":{"origin":40663,"position":5},"title":"Quick Guide to GraphQL for BackEnd &#038; FrontEnd","author":"Leonid Mamchenkov","date":"February 19, 2018","format":false,"excerpt":"GraphQL is one of those technologies which is constantly on my radar, just waiting for the right time and project to try it on.\u00a0 For now, I'm just slowly moving to that target, collecting links to resources in the meantime. \"Introduction & Quick Guide to GraphQL for BackEnd & FrontEnd\"\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/02\/graphql-500x333.jpeg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/40663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=40663"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/40663\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=40663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=40663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=40663"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=40663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}