{"id":35760,"date":"2021-07-30T12:37:32","date_gmt":"2021-07-30T09:37:32","guid":{"rendered":"https:\/\/orbitsoft.com\/blog\/?p=35760"},"modified":"2023-06-28T18:39:20","modified_gmt":"2023-06-28T15:39:20","slug":"tasks-we-solve-with-the-help-of-laravel","status":"publish","type":"post","link":"https:\/\/orbitsoft.com\/blog\/tasks-we-solve-with-the-help-of-laravel\/","title":{"rendered":"Tasks we solve with the help of Laravel"},"content":{"rendered":"<div class=\"wp-block-lazyblock-case lazyblock-case-1TEycj\"><div class=\"styled-block\">\n  <div class=\"styled-block__main\">\n          <h3 class=\"styled-block__title\">\n        In brief      <\/h3>\n        <ul class=\"case__list\">\n            \n                    <li class=\"case__item\">\n              \n          <span class=\"case__order\">01<\/span>\n          <div class=\"case__body\">\n            <div class=\"case__title\">\n              <span>Kind of tool<\/span>\n            <\/div>\n            <p>Laravel PHP framework<\/p>          <\/div>\n        <\/li>\n            \n                    <li class=\"case__item\">\n              \n          <span class=\"case__order\">02<\/span>\n          <div class=\"case__body\">\n            <div class=\"case__title\">\n              <span>Where it\u2019s used<\/span>\n            <\/div>\n            <p>Car insurance selection service GetPolis<\/p>          <\/div>\n        <\/li>\n            \n                    <li class=\"case__item\">\n              \n          <span class=\"case__order\">03<\/span>\n          <div class=\"case__body\">\n            <div class=\"case__title\">\n              <span>Reason to use Laravel<\/span>\n            <\/div>\n            <p>Reduces routine operations: speeds up code writing and implementation of new functionality<\/p>\n<p>Due to its queuing mechanism it doesn\u2019t lose speed<\/p>\n<p>It\u2019s easy to search and correct errors in code thanks to its channel logging system<\/p>\n<p>Ensures security: protects passwords with mechanisms for authentication<\/p>          <\/div>\n        <\/li>\n            \n                    <li class=\"case__item case__item_marked\">\n              \n          <span class=\"case__order\">04<\/span>\n          <div class=\"case__body\">\n            <div class=\"case__title\">\n              <span>Results<\/span>\n            <\/div>\n            <p>16,000 personal accounts in the system<\/p>\n<p>Over 100,000 policies sold per year<\/p>\n<p>1,600 policies sold per day<\/p>          <\/div>\n        <\/li>\n          <\/ul>\n  <\/div>\n  <\/div><\/div>\n\n<div class=\"wp-block-lazyblock-heading lazyblock-heading-JJrCW\"><h2 class=\"article__h\">The GetPolis service selects a CASCO for free, reminds the user regarding the policy purchase, and allows for the creation of an agent network <\/h2><\/div>\n\n\n<p>GetPolis is a service for selecting auto insurance policies: it compares prices for MTPL and comprehensive car insurance and offers the customer the best price option. The policy selection is free. The service earns money from commissions from the insurance companies involved.<\/p>\n\n\n\n<p>The service has two types of users: ordinary buyers from the Internet and agents.  Agents are intermediaries who choose policies from the service and sell it to their clients.<\/p>\n\n\n<div class=\"wp-block-lazyblock-link-text lazyblock-link-text-Z2v9yAl\">      <aside class=\"article-aside js-article-aside_under\">\n    <div class=\"article-aside__body\">\n                            <a href=\"https:\/\/getpolis.ru\/\" class=\"article-aside__link\" rel=\"nofollow\">\n                                              <span class=\"article-aside__txt\">\n                      <span>WebSite GetPolis<\/span>\n                  <\/span>\n                        <\/a>\n        <\/div>\n<\/aside><\/div>\n\n\n<p>Service functions:<\/p>\n\n\n\n<ul>\n<li>Policy selection: comparison of prices from different insurance companies, analysis of input data from the buyer, accounting for discounts and promotions.<\/li>\n\n\n\n<li>Automatic mailing of reminder letters regarding policy purchase.<\/li>\n\n\n\n<li>Ability to send inquiries to traffic police.<\/li>\n\n\n\n<li>Ability to create an agent network: add employees, assign commission payments to them.<\/li>\n<\/ul>\n\n\n\n<p>A full set of functions for the service is available from any device due to the adaptive layout of the site. There is no mobile application for the service as of yet.<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-1dyt71\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/imgLaravel1.png\" alt=\"\">\n    <\/div>\n                <figcaption>Service shows the current cost of policies from insurance companies.  It is connected to their platforms by API.<\/figcaption>\n    <\/figure><\/div>\n\n<div class=\"wp-block-lazyblock-heading lazyblock-heading-Z193Ww7\"><h2 class=\"article__h\">Tasks we solve with the help of Laravel <\/h2><\/div>\n\n\n<p>The client gave us the project after another contractor failed in carrying out the development. In order to launch the service faster, we decided not to reinvent the code base from scratch, but to refine it. The Laravel framework was used in the development. <\/p>\n\n\n\n<p>Tasks we solved with the help of Laravel:<\/p>\n\n\n\n<p><strong>Fast creation of new entities: user personal accounts, order pages.<\/strong> The framework optimizes the writing of new routes: mapping program code and URLs.<\/p>\n\n\n\n<p>This is what the example code for creating a route to get data looks like. When you access the specified site address, controller functions will be called that will perform operations and return either data or a web page with markup in response:<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-5Ygnt\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/route1.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n\n<p><strong>High speed of the service. <\/strong>The service is able to perform two tasks simultaneously and doesn\u2019t  slow down a user&#8217;s work with the site. For example, it can update car directories and send notifications while the user is arranging insurance.<\/p>\n\n\n\n<p>This is possible thanks to a queuing mechanism: the framework allows you to split tasks into several parts, isolate them from each other, and run them in parallel.<\/p>\n\n\n\n<p><strong>Real-time data update.<\/strong> Users will see the policy in their personal account as soon as they pay the insurance company. If we don&#8217;t receive a policy from an insurance company right away, we use the &#8220;task scheduler&#8221; function to poll insurance companies for the availability of a ready-made policy. As a rule, the document appears in your personal account within half an hour.<\/p>\n\n\n\n<p>To check the availability of a policy, we can write such a task in the Kernel.php file:<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-Z1xhe5d\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/data1.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n\n<p>The cron format specifies the interval at which the specified command is to be invoked. There is no need to write tasks at the operating system level: the framework organizes everything itself.<\/p>\n\n\n\n<p><strong>It\u2019s convenient to find and fix bugs.<\/strong> Laravel is able to separate bugs by type, so it&#8217;s easier to find and fix them. The framework uses a channel-based logging system: you can use different channels to store logs from different parts of the system. For logging you can use different types of output, for example, you can output the logs to individual files on disk or output them to Slack, or to some other service.<\/p>\n\n\n\n<p>Logging channels are configured in the config\/logging.php file as follows:<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-1y6c1c\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/Logging-channels.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n\n<p>Here we have described two channels whose messages will be stored for 30 days in the logs folder, broken down by day.<\/p>\n\n\n\n<p>The entries in the orders channel will look like this:<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-Z2tDfae\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/Logging2.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n\n<p><strong>Storing data in the cloud.<\/strong> When we ran out of server space, we moved the data to the cloud &#8211; we use cloud object storage with Amazon S3 support. To do this we took an off-the-shelf library from Amazon, the AWS SDK for PHP.<\/p>\n\n\n\n<p>It\u2019s not specific to Laravel, but it\u2019s very easy to integrate into our code.<\/p>\n\n\n\n<p>All you need to do is initialize the client in the repository class and then use the API methods.<\/p>\n\n\n\n<p>Initialization:<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-IMhuN\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/init.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n\n<p>This is how to get an object from the repository:<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-ZME4am\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/init2.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n\n<p>And this is how to send an object to the repository:<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-iUmho\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/init3.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n\n<p>The $localPath parameter here is for convenience and shows in what form we\u2019re sending the data to the repository.<\/p>\n\n\n\n<p><strong>Email newsletter through Mailchimp.<\/strong> The service reminds users by email that it&#8217;s time to buy insurance. As the number of active agents grew, we ran into problems with email sending limits, as Yandex doesn\u2019t allow for mass mailings of more than 500 messages per day, or more than 50 recipients at a time.<\/p>\n\n\n\n<p>We decided to use a mailing service. We chose Mailchimp, because it\u2019s a handy and thoroughly-tested tool, which also allows for the viewing of statistics: how many people read the letter, who clicked on the links from it, etc.<\/p>\n\n\n\n<p>We used the spatie\/laravel-newsletter library to connect the newsletters. When you install it, you create a config\/newsletter.php file in the project. It contains the details for connecting to the Mailchimp service.<\/p>\n\n\n\n<p>Then in the code we get a client to call the service:<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-2npILO\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/api.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n\n<p>In order to create a new mailing campaign, you have to do the following:<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-lNUzT\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/campaign.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n\n<p>In response, the campaign creation function returns the ID that we use when we run the campaign:<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-Z24dcHh\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/api2.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n\n<p>You can add users to the mailing list through the API, or via Mailchimp&#8217;s personal account interface.<\/p>\n\n\n\n<p><strong>Data is protected from theft and copying.<\/strong> Laravel has automatic application security measures in place:<\/p>\n\n\n\n<ul>\n<li>Stored passwords: they are encoded so that even the site developer can&#8217;t see the user&#8217;s password in plaintext.<\/li>\n\n\n\n<li>Authentication mechanisms are built in: for example, you can plug in an off-the-shelf function to remember the user.<\/li>\n\n\n\n<li>The Eloquent ORM utility protects against hacking through forms on the site.<\/li>\n<\/ul>\n\n\n\n<p> There\u2019s protection against cross-site request forgery, connected with a couple lines of code: <\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-1YjsoB\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/token.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n<div class=\"wp-block-lazyblock-heading lazyblock-heading-ZR0xI0\"><h2 class=\"article__h\">Work results using Laravel: We launched the service in just 10 months  <\/h2><\/div>\n\n\n<p>OrbitSoft started working on the project in 2019 and launched it in just 10 months. Now the service works, we continue to support it, and we working on the creation of a mobile application.<\/p>\n\n\n\n<p><strong>The service immediately worked with both agents and regular users.<\/strong> There are two personal accounts with different sets of functions: the service offers businesses several models for making money.<\/p>\n\n\n\n<p><strong>It works on any device.<\/strong> The service has no mobile application, but thanks to the adaptive layout the site is easy to use not only on a computer but also on a tablet or cell phone.<\/p>\n\n\n\n<p><strong>Easy integration with any insurance company platforms. <\/strong>The customer can negotiate cooperation with new partners, and easily connect to them via API and earn more.<\/p>\n\n\n\n<p><strong>Ability to create an agent network and settle accounts with employees.<\/strong> The personal account allows agents to build a business, organize their work, and earn more.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>10,000 personal accounts of ordinary users<\/td><td>10,000 policies bought by regular customers<\/td><td>1,600 policies sold per day<\/td><\/tr><tr><td>6,000 personal accounts of insurance agents<\/td><td>90,000 policies sold by agents<\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<div class=\"wp-block-lazyblock-important-block lazyblock-important-block-1sBomg\"><div class=\"important-box\">\n  <div class=\"important-box__main\">\n      \t<p><strong>Technical unit<\/strong><\/p>\n<ul>\n<li>PHP 7.3<\/li>\n<li>Laravel 5.7.29<\/li>\n<li>Vue.js 2.6<\/li>\n<\/ul>\n<p><strong>Programming languages:<\/strong><\/p>\n<ul>\n<li>PHP<\/li>\n<li>JS<\/li>\n<\/ul>\n<p><strong>Libraries<\/strong><\/p>\n<p>PHP:<\/p>\n<ul>\n<li>Laravel SMS API: https:\/\/github.com\/gr8shivam\/laravel-sms-api<\/li>\n<li>AWS SDK \u0434\u043b\u044f PHP: https:\/\/aws.amazon.com\/ru\/sdk-for-php\/<\/li>\n<li>League Flysystem: https:\/\/github.com\/thephpleague\/flysystem<\/li>\n<li>Laravel Newsletter: https:\/\/github.com\/spatie\/laravel-newsletter<\/li>\n<\/ul>\n<p>JS:<\/p>\n<ul>\n<li>Vuetify<\/li>\n<li>JQuery<\/li>\n<li>Bootstrap<\/li>\n<li>Axios<\/li>\n<li>Bootstrap<\/li>\n<li>Lodash<\/li>\n<\/ul>  <\/div>\n  <\/div><\/div>\n\n<div class=\"wp-block-lazyblock-banner lazyblock-banner-1DDyaR\"><div \n  class=\"banner\n   \n  \" \n  >\n    <div class=\"banner__body\">\n        <h2 class=\"banner__h\"> We release projects for online and offline business<\/h2>\n        <div class=\"banner__content\">\n            <p><strong>We work with businesses of any scale.<\/strong> Our clients include international companies, large and medium-sized businesses, and startups.<\/p>\n<p><strong>Telecom<\/strong>: cellular operators, Internet service providers.<\/p>\n<p><strong>Finance<\/strong>: electronic payment systems, insurance companies and brokers.<\/p>\n<p><strong>Retail<\/strong>: stores, trade networks.<\/p>\n<p><strong>Internet advertising<\/strong>: advertising agencies, advertising networks.<\/p>\n<p><strong>Medicine<\/strong>: clinics, medical services.<\/p>        <\/div>\n                            <div \n              class=\"banner__button button js-form-modal\n               button_style_light-on-promo2\">\n              Discuss or order development                          <\/div>\n            <\/div>\n    <div class=\"banner__photo\">\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/friendship.png\" alt=\"\" class=\"banner__img\">\n    <\/div>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>GetPolis is a service for selecting auto insurance policies: it compares prices for MTPL and comprehensive car insurance and offers the customer the best price option. The policy selection is free. The service earns money from commissions from the insurance companies involved. The service has two types of users: ordinary buyers from the Internet and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":35777,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[196],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tasks we solve with the help of Laravel - OrbitSoft Blog<\/title>\n<meta name=\"description\" content=\"Why did we chose Laravel for the developing of the car insurance selection service GetPolis and what the results are\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/orbitsoft.com\/blog\/tasks-we-solve-with-the-help-of-laravel\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Tasks we solve with the help of Laravel - OrbitSoft Blog\" \/>\n<meta name=\"twitter:description\" content=\"Why did we chose Laravel for the developing of the car insurance selection service GetPolis and what the results are\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/Frame-232-1.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@orbitsoft\" \/>\n<meta name=\"twitter:site\" content=\"@orbitsoft\" \/>\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=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tasks we solve with the help of Laravel - OrbitSoft Blog","description":"Why did we chose Laravel for the developing of the car insurance selection service GetPolis and what the results are","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:\/\/orbitsoft.com\/blog\/tasks-we-solve-with-the-help-of-laravel\/","twitter_card":"summary_large_image","twitter_title":"Tasks we solve with the help of Laravel - OrbitSoft Blog","twitter_description":"Why did we chose Laravel for the developing of the car insurance selection service GetPolis and what the results are","twitter_image":"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/Frame-232-1.jpg","twitter_creator":"@orbitsoft","twitter_site":"@orbitsoft","twitter_misc":{"Written by":"admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/orbitsoft.com\/blog\/tasks-we-solve-with-the-help-of-laravel\/","url":"https:\/\/orbitsoft.com\/blog\/tasks-we-solve-with-the-help-of-laravel\/","name":"Tasks we solve with the help of Laravel - OrbitSoft Blog","isPartOf":{"@id":"https:\/\/orbitsoft.com\/blog\/#website"},"datePublished":"2021-07-30T09:37:32+00:00","dateModified":"2023-06-28T15:39:20+00:00","author":{"@id":"https:\/\/orbitsoft.com\/blog\/#\/schema\/person\/e515b3fa91e283750477594c4f028b7b"},"description":"Why did we chose Laravel for the developing of the car insurance selection service GetPolis and what the results are","breadcrumb":{"@id":"https:\/\/orbitsoft.com\/blog\/tasks-we-solve-with-the-help-of-laravel\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/orbitsoft.com\/blog\/tasks-we-solve-with-the-help-of-laravel\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/orbitsoft.com\/blog\/tasks-we-solve-with-the-help-of-laravel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/orbitsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tasks we solve with the help of Laravel"}]},{"@type":"WebSite","@id":"https:\/\/orbitsoft.com\/blog\/#website","url":"https:\/\/orbitsoft.com\/blog\/","name":"OrbitSoft Blog","description":"Discover the latest in news and resources for OrbitSoft","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/orbitsoft.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/orbitsoft.com\/blog\/#\/schema\/person\/e515b3fa91e283750477594c4f028b7b","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/orbitsoft.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b1b269c579caf059f82b6d114c63fc49?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b1b269c579caf059f82b6d114c63fc49?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/orbitsoft.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/posts\/35760"}],"collection":[{"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=35760"}],"version-history":[{"count":8,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/posts\/35760\/revisions"}],"predecessor-version":[{"id":36578,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/posts\/35760\/revisions\/36578"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/media\/35777"}],"wp:attachment":[{"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=35760"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/categories?post=35760"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/tags?post=35760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}