{"id":2954,"date":"2017-03-30T17:59:07","date_gmt":"2017-03-30T12:29:07","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=2954"},"modified":"2023-01-20T18:55:54","modified_gmt":"2023-01-20T13:25:54","slug":"rest-web-service-api-development-guidelines","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/","title":{"rendered":"REST Web Service \/ API Development Guidelines"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p>RESTful Web Services are basically REST Architecture based Web Services. In REST Architecture everything is a resource. RESTful web services are light weight, highly scalable and maintainable and are very commonly used to create APIs.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/restapi.png\"><img fetchpriority=\"high\" decoding=\"async\" class=\"size-full wp-image-2955 aligncenter\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/restapi.png\" alt=\"restapi\" width=\"243\" height=\"208\" \/><\/a><\/p>\n<p><strong>Why has REST API become so popular ?<\/strong><\/p>\n<ul>\n<li>Separation between the client and the server.<\/li>\n<li>Visibility, reliability and scalability.<\/li>\n<li>The REST API is always independent of the type of platform or languages.<\/li>\n<\/ul>\n<p>Today there are no projects or applications that don&#8217;t have a REST API for the creation of professional services based on this software. Without them any horizontal growth would be practically impossible. This is because REST is the most logical, efficient and widespread standard in the creation of APIs for Internet services.<\/p>\n<p>Here is defining all the important guidelines which should be implemented to make Web APIs:<\/p>\n<ul>\n<li>Highly secure and efficient.<\/li>\n<li>Friendly to the developer and be explorable via a browser address bar.<\/li>\n<li>Simple, intuitive and consistent to make adoption not only easy but pleasant.<\/li>\n<li>Efficient, while maintaining balance with the other requirements.<\/li>\n<\/ul>\n<p><strong>1. Request Format<\/strong><\/p>\n<p>Request should be same through out the APIs. It should be flexible and easily understandable. It should contain two parts:<\/p>\n<ul>\n<li>Request Headers<\/li>\n<li>Request Data<\/li>\n<\/ul>\n<p><strong>1.1. Request Headers:<\/strong><\/p>\n<p>Following are the request headers which must be included in request:<\/p>\n<ul>\n<li>DeviceInfo &#8211; This header helping in fetching device information on which client application is running.\u00a0 For ex &#8211; Device Manufacturer, model, OS version etc.<\/li>\n<li>AppInfo &#8211; This header is used to fetch client application version information.<\/li>\n<li>UserInfo &#8211; Id of user using the client application.<\/li>\n<li>Authentication &#8211; Parameter used for application authentication.<\/li>\n<li>UserAuthentication &#8211; Parameter used for user authentication.<\/li>\n<li>ClientType &#8211; Type of client like iOS\/Android\/Web.<\/li>\n<\/ul>\n<p><strong>1.2. Request Data:<\/strong><\/p>\n<p>Request data will contain actual data for the API. Request data should be in kay value pair.<\/p>\n<p><strong style=\"font-size: 1rem;\">2. Response Format<\/strong><\/p>\n<p>Response format should contain two parts:<\/p>\n<ul>\n<li>responseStatus<\/li>\n<li>responseData<\/li>\n<\/ul>\n<p><strong>2.1 Response Status<\/strong><\/p>\n<p>Response status should contain a status code for response other than http status code so that client can handle response on the basis of response code.<\/p>\n<p><strong>2.1.1 Success (Positive) Response\u00a0 <\/strong><\/p>\n<p>In this case \u201cresponseStatus\u201d will contain one field that is \u201dstatusCode\u201d. This field will be zero in case of success.\u00a0 Http status code: \u201c200 OK\u201d.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/successjson.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2958\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/successjson.png\" alt=\"successjson\" width=\"423\" height=\"111\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/successjson.png 423w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/successjson-300x79.png 300w\" sizes=\"(max-width: 423px) 100vw, 423px\" \/><\/a><\/p>\n<p><strong>2.1.2 Negative Response<\/strong><\/p>\n<p>There are different \u200bscenario\u200bs in which negative response is given to the user. We need to send different HTTP status codes for different scenarios. Negative response should be specific and should contain a user friendly message. For example:<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/errorjson.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2957\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/errorjson.png\" alt=\"errorjson\" width=\"371\" height=\"159\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/errorjson.png 371w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/errorjson-300x129.png 300w\" sizes=\"(max-width: 371px) 100vw, 371px\" \/><\/a><\/p>\n<p><strong>2.2 Response Data<\/strong><\/p>\n<p>Response data should contain actual data returned by the API.<\/p>\n<p><strong style=\"font-size: 1rem;\">3.Application Security<\/strong><\/p>\n<p>Application Security can be achieved through \u2013<\/p>\n<p><strong>3.1 App Authentication <\/strong><\/p>\n<p>App authentication can be done using the information coming in headers. Authentication should be done in filter before actual api read request so that invalid request can be identified before actual processing.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/APIAUTH1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2963\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/APIAUTH1.png\" alt=\"APIAUTH\" width=\"478\" height=\"110\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/APIAUTH1.png 478w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/APIAUTH1-300x69.png 300w\" sizes=\"(max-width: 478px) 100vw, 478px\" \/><\/a><\/p>\n<p><strong>3.2 User Authentication \u00a0<\/strong><\/p>\n<p>User authentication can be done using the information coming in headers. Authentication should be done in filter before actual api read request so that invalid user can be identified before actual processing.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/USERAUTH1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2964\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/USERAUTH1.png\" alt=\"USERAUTH\" width=\"473\" height=\"114\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/USERAUTH1.png 473w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/USERAUTH1-300x72.png 300w\" sizes=\"(max-width: 473px) 100vw, 473px\" \/><\/a><\/p>\n<p><strong style=\"font-size: 1rem;\">4. Client Version Support<\/strong><\/p>\n<p>Over a period of time API will change and transform to higher versions. It would be difficult to support old version of client communicating with the latest version of API and we would like\u00a0 old version client to upgrade to the latest version. API in such case must send response that client can understand and can provide a message to user to upgrade client.<\/p>\n<p><strong style=\"font-size: 1rem;\">5. Exception logging<\/strong><\/p>\n<p>Every exception which came on the back-end server should be logged into the database. Exception should be logged through asynchronous job so that other processing can be work without any conflict.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/EXCEPTIONLOG.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2960\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/EXCEPTIONLOG.png\" alt=\"EXCEPTIONLOG\" width=\"469\" height=\"96\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/EXCEPTIONLOG.png 469w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/EXCEPTIONLOG-300x61.png 300w\" sizes=\"(max-width: 469px) 100vw, 469px\" \/><\/a><\/p>\n<p><strong style=\"font-size: 1rem;\">6. Request response logging<\/strong><\/p>\n<p>Every request\/response came on the back-end server should be logged into the database. This should be done in an asynchronous task or job.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/REQRESLOG.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2956\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/REQRESLOG.png\" alt=\"REQRESLOG\" width=\"474\" height=\"154\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/REQRESLOG.png 474w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/REQRESLOG-300x97.png 300w\" sizes=\"(max-width: 474px) 100vw, 474px\" \/><\/a><\/p>\n<p><strong style=\"font-size: 1rem;\">7. File logging<\/strong><\/p>\n<p>All the minor communications and events happening within the application should be logged in a log file. \u201cLog4j\u201d can be used for it.<\/p>\n<p><strong>8. Use nouns<\/strong><\/p>\n<p>Noun should be used for api resource instead of verb. Do not mix up singular and plural nouns. Keep it simple and use only plural nouns for all resources. For example:\u00a0 \/cars instead of \/getAllCars<\/p>\n<p><strong style=\"font-size: 1rem;\">9. Use HTTP Methods to Operate on your Resources<\/strong><\/p>\n<p>Use URLs to specify the resources you want to work with. Use the HTTP methods to specify what to do with this resource. The four HTTP methods GET, POST, PUT, DELETE should be used for CRUD functionality (Create, Read, Update, Delete).<\/p>\n<ul>\n<li>Read: Get should be used for reading resources. GET requests never ever change the state of the resource.<\/li>\n<li>Create: POST should be used for creating new resources.<\/li>\n<li>Update: PUT should be used for updating existing resources.<\/li>\n<li>Delete: DELETE should be used for deleting existing resources.<\/li>\n<\/ul>\n<p><strong><span style=\"font-size: 1rem;\">10. <\/span>Camel Case<span style=\"font-size: 1rem;\">\u00a0for Attribute Names<\/span><\/strong><\/p>\n<p>Attribute name in request\/response should be in camel case. Like:<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/attribute.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2959\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/attribute-300x69.png\" alt=\"attribute\" width=\"300\" height=\"69\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/attribute-300x69.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/attribute.png 346w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; RESTful Web Services are basically REST Architecture based Web Services. In REST Architecture everything is a resource. RESTful web services are light weight, highly scalable and maintainable and are very commonly used to create APIs. Why has REST API become so popular ? Separation between the client and the server. Visibility, reliability and scalability. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2972,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71,8,102],"tags":[],"class_list":["post-2954","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mobile","category-mobile-architecture-and-design","category-web-service"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>REST Web Service \/ API Development Guidelines | InnovationM Blog<\/title>\n<meta name=\"description\" content=\"REST API Best Practices\" \/>\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.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"REST Web Service \/ API Development Guidelines | InnovationM Blog\" \/>\n<meta property=\"og:description\" content=\"REST API Best Practices\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-30T12:29:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-20T13:25:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/Rest-API1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"624\" \/>\n\t<meta property=\"og:image:height\" content=\"347\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"REST Web Service \\\/ API Development Guidelines\",\"datePublished\":\"2017-03-30T12:29:07+00:00\",\"dateModified\":\"2023-01-20T13:25:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/\"},\"wordCount\":797,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/Rest-API1.png\",\"articleSection\":[\"Mobile\",\"Mobile Architecture and Design\",\"Web service\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/\",\"name\":\"REST Web Service \\\/ API Development Guidelines | InnovationM Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/Rest-API1.png\",\"datePublished\":\"2017-03-30T12:29:07+00:00\",\"dateModified\":\"2023-01-20T13:25:54+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"description\":\"REST API Best Practices\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/Rest-API1.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/Rest-API1.png\",\"width\":624,\"height\":347},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/rest-web-service-api-development-guidelines\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"REST Web Service \\\/ API Development Guidelines\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"REST Web Service \/ API Development Guidelines | InnovationM Blog","description":"REST API Best Practices","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.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/","og_locale":"en_US","og_type":"article","og_title":"REST Web Service \/ API Development Guidelines | InnovationM Blog","og_description":"REST API Best Practices","og_url":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/","og_site_name":"InnovationM - Blog","article_published_time":"2017-03-30T12:29:07+00:00","article_modified_time":"2023-01-20T13:25:54+00:00","og_image":[{"width":624,"height":347,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/Rest-API1.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"REST Web Service \/ API Development Guidelines","datePublished":"2017-03-30T12:29:07+00:00","dateModified":"2023-01-20T13:25:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/"},"wordCount":797,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/Rest-API1.png","articleSection":["Mobile","Mobile Architecture and Design","Web service"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/","url":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/","name":"REST Web Service \/ API Development Guidelines | InnovationM Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/Rest-API1.png","datePublished":"2017-03-30T12:29:07+00:00","dateModified":"2023-01-20T13:25:54+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"description":"REST API Best Practices","breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/Rest-API1.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/03\/Rest-API1.png","width":624,"height":347},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/rest-web-service-api-development-guidelines\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"REST Web Service \/ API Development Guidelines"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/2954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=2954"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/2954\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/2972"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=2954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=2954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=2954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}