{"id":36333,"date":"2019-07-22T13:00:05","date_gmt":"2019-07-22T17:00:05","guid":{"rendered":"https:\/\/sdtimes.com\/?p=36333"},"modified":"2019-07-22T12:07:40","modified_gmt":"2019-07-22T16:07:40","slug":"3-critical-aspects-of-api-testing","status":"publish","type":"post","link":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/","title":{"rendered":"3 critical aspects of API testing"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Whether you are using a mobile native, web or desktop app, integrated devices like fitness trackers, smart thermostats and virtual voice assistants; the odds are, there are millions of application programming interface (<\/span><a href=\"https:\/\/sdtimes.com\/tag\/apis\/\"><span style=\"font-weight: 400;\">API<\/span><\/a><span style=\"font-weight: 400;\">) requests happening every second to provide the necessary services to the consumers without them even realizing it. The present world runs on APIs and the adoption is only getting bigger.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">APIs have helped to share data efficiently across various ecosystems, have opened up new opportunities for companies to better serve their customers, and have continued to foster innovation. In fact, the <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/OpenAPI_Specification\"><span style=\"font-weight: 400;\">Open API specification<\/span><\/a><span style=\"font-weight: 400;\"> was formed in 2016, to help clients understand and consume services without knowledge of server code more seamlessly; thereby increasing efficiency. In summary,\u00a0 API\u2019s are the glue that binds systems together and it is here to stay.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">APIs are a set of commands, functions, and protocols that programmers use to interact with an external system. They provide developers the ability to tap into different programs and perform different operations without having to build the program from scratch.\u00a0<\/span><\/p>\n<p><b>RELATED ARTICLES:<\/b><br \/>\n<a href=\"https:\/\/sdtimes.com\/api\/apis-help-developers-do-more-with-less\/\"><b>APIs help developers do more with less<\/b><\/a><br \/>\n<a href=\"https:\/\/sdtimes.com\/apis\/debunking-the-api-revolution-driving-adoption-of-b2b-apis\/\"><b>Debunking the API revolution<\/b><\/a><\/p>\n<p><span style=\"font-weight: 400;\">The biggest advantage of APIs is the level of abstraction they provide by exposing only the data that are needed to communicate with another system. For example, Google\u2019s Maps API is used by number of organizations to provide Google Maps support instead of companies having to build their own maps application. The same holds true for Mint, the finance app that connects via APIs to different banks to fetch the required customer data.\u00a0<\/span><\/p>\n<p><b>How do APIs work?<\/b><br \/>\n<span style=\"font-weight: 400;\">On a high level, API communication is a three-step process:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Step 1<\/b><span style=\"font-weight: 400;\"> \u2014 A client\/application sends an API request to the server The request contains an API key to uniquely identify the sender<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Step 2<\/b><span style=\"font-weight: 400;\"> \u2014 The request then goes to a server and the API key gets validated to ensure the sender is credible<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Step 3<\/b><span style=\"font-weight: 400;\"> \u2014 Based on the validation, a response is sent back to the client\/application<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">REST and SOAP are the most commonly used API paradigms. <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Representational_state_transfer\"><span style=\"font-weight: 400;\">REST<\/span><\/a><span style=\"font-weight: 400;\"> (Representational State Transfer) is an architectural style that defines a set of constraints for creating web services. <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/SOAP\"><span style=\"font-weight: 400;\">SOAP<\/span><\/a><span style=\"font-weight: 400;\"> (Simple Object Access Protocol) is a protocol that defines the way structured information is exchanged within web services. There are considerable differences between the two and each one has its own advantages and disadvantages.<\/span><\/p>\n<p><b>Testing APIs<\/b><br \/>\n<span style=\"font-weight: 400;\">In the past, APIs were developed on an ad hoc basis; it was acceptable to leave them to be vetted and tested by developers alone. However, now APIs can be seen<\/span><span style=\"font-weight: 400;\"> as a separate product <\/span><span style=\"font-weight: 400;\">offering in and of itself that support a company\u2019s strategic vision; therefore, a more robust approach to testing APIs is required.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The main questions to consider as part of API testing include:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Is the API public-facing or internal?\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Is it necessary to integrate with components outside the system or application?<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">What are the endpoints and value types?\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Where is the data coming from? Can the data be accessed freely or is some sort of key or authentication required?<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">How will you verify the expected result? How will it be determined if the API performed as intended under the specified circumstances or scenarios?<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Is the API logic simple or is it more sophisticated; with dependency-based decisioning?<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Under what conditions is a site, app, or function most likely to fail?<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">In addition to the above considerations, API testing should not be limited to just making a few \u2018Get\u2019 and \u2018Put\u2019 calls to verify that the values are returned as expected.\u00a0 Developers tend to limit their unit tests to this type of straightforward verification. With APIs, testers need to be especially attuned to not only individual functions, but also the end-to-end sequence of events, calls, responses, and downstream events. At the very least, the most common and basic scenarios to test are:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">(GET) Results are returned as expected<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">(POST) All parameters are passed and\/or received as expected<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">(PUT) Inputs are correctly captured and stored<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">(DELETE) Deleted data is cleared from the database<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Error messages are meaningful and returned as expected<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Triggers for downstream events occur as intended<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">For security, testing should also include scenarios for controlled access, authentication, and encryption<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">The above scenarios can be mixed and matched and in many ways. Also, just like automated tests for functional testing, API tests can be automated as well; to get faster feedback and adequate API testing coverage.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">API testing is a vital part of the overall testing strategy. It should cover three primary aspects: connectivity, response, and performance.<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">To test connectivity, simply make a call to the API using its URL. If a 200 response is returned, the API is connected. If no response is returned, or a connection failure error is returned, then connectivity failed; which means that the request was not received by the server.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">It is important to ensure you get back the correct responses for different API requests. The validation includes looking for the correct values to be returned in the response along with the appropriate status code. The values returned are specific to the type of API that is implemented but in terms of status codes. Below are some commonly validated status codes in API testing:<\/span>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">400 BAD REQUEST &#8211; Generic error that is returned when no other 4xx status code is appropriate. Domain validation errors, missing data and improper API requests are some examples.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">401 UNAUTHORIZED &#8211; Error code response for missing or invalid authentication token.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">403 FORBIDDEN &#8211; Error code response when the user is not authorized to perform the operation\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">404 NOT FOUND &#8211; Used when the requested resource is not found, it doesn&#8217;t exist or if there was a 401 or 403 error and for security reasons, the service masks it as a 404 error<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">409 CONFLICT &#8211; Response for resource conflicts, for example, duplicate entries are found or trying to delete root objects when cascade-delete is not supported<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">500 INTERNAL SERVER ERROR &#8211; This error code is returned when the consumer cannot identify the exact error from their end. It is a general catch-all error when the server-side throws an exception.\u00a0<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">An API\u2019s performance can be said to be its most valuable feature. Each time an API request is made the response needs to come back in a matter of milliseconds. Also, depending on the application, thousands if not millions of API requests can be made, as in the case of Facebook, Google and Twitter. This being the case, the APIs should be able to handle large amounts of load without failing. If it does not have fast response times and unable to handle load amounts of request; the API is pretty much worthless.\u00a0<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Also, It\u2019s not just about the number of users that an API can handle, but also about how efficiently does a given API perform? How many additional web service calls are getting generated or how many times is it hitting the database?\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">These are the types of questions that must be answered for an API to be ready to perform in the current marketplace.<\/span><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Whether you are using a mobile native, web or desktop app, integrated devices like fitness trackers, smart thermostats and virtual voice assistants; the odds are, there are millions of application programming interface (API) requests happening every second to provide the necessary services to the consumers without them even realizing it. The present world runs on  &hellip; <a class=\"read-more\" href=\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/\">continue reading<\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":798,"featured_media":36334,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"cybocfi_hide_featured_image":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[1823,4000],"coauthors":[13346],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>3 critical aspects of API testing - SD Times<\/title>\n<meta name=\"description\" content=\"The biggest advantage of APIs is the level of abstraction they provide by exposing only the data that are needed to communicate with another system\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"3 critical aspects of API testing - SD Times\" \/>\n<meta property=\"og:description\" content=\"The biggest advantage of APIs is the level of abstraction they provide by exposing only the data that are needed to communicate with another system\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/\" \/>\n<meta property=\"og:site_name\" content=\"SD Times\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SDTimesD2\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-22T17:00:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-07-22T16:07:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sdtimes.com\/wp-content\/uploads\/2019\/07\/work-731198_640-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"426\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Raj Subramanian\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sdtimes\" \/>\n<meta name=\"twitter:site\" content=\"@sdtimes\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Raj Subramanian\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/\"},\"author\":{\"name\":\"Raj Subramanian\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/person\/09486cd28a3ead2b2f1ef2cd9f561162\"},\"headline\":\"3 critical aspects of API testing\",\"datePublished\":\"2019-07-22T17:00:05+00:00\",\"dateModified\":\"2019-07-22T16:07:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/\"},\"wordCount\":1174,\"publisher\":{\"@id\":\"https:\/\/sdtimes.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2019\/07\/work-731198_640-1.jpg\",\"keywords\":[\"API\",\"API testing\"],\"articleSection\":[\"Latest News\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/\",\"url\":\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/\",\"name\":\"3 critical aspects of API testing - SD Times\",\"isPartOf\":{\"@id\":\"https:\/\/sdtimes.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2019\/07\/work-731198_640-1.jpg\",\"datePublished\":\"2019-07-22T17:00:05+00:00\",\"dateModified\":\"2019-07-22T16:07:40+00:00\",\"description\":\"The biggest advantage of APIs is the level of abstraction they provide by exposing only the data that are needed to communicate with another system\",\"breadcrumb\":{\"@id\":\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#primaryimage\",\"url\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2019\/07\/work-731198_640-1.jpg\",\"contentUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2019\/07\/work-731198_640-1.jpg\",\"width\":640,\"height\":426},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/sdtimes.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"3 critical aspects of API testing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sdtimes.com\/#website\",\"url\":\"https:\/\/sdtimes.com\/\",\"name\":\"SD Times\",\"description\":\"Software Development News\",\"publisher\":{\"@id\":\"https:\/\/sdtimes.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sdtimes.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/sdtimes.com\/#organization\",\"name\":\"SD Times\",\"url\":\"https:\/\/sdtimes.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png\",\"contentUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png\",\"width\":225,\"height\":90,\"caption\":\"SD Times\"},\"image\":{\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SDTimesD2\",\"https:\/\/x.com\/sdtimes\",\"https:\/\/www.linkedin.com\/company\/sdtimes\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/person\/09486cd28a3ead2b2f1ef2cd9f561162\",\"name\":\"Raj Subramanian\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/person\/image\/3eeca286360b3996d7f06e8cffbc0e34\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ea01f7c6125b1d54c940dded8cd9fca8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ea01f7c6125b1d54c940dded8cd9fca8?s=96&d=mm&r=g\",\"caption\":\"Raj Subramanian\"},\"description\":\"Raj Subramanian, a former developer, currently works as a Developer Evangelist for Testim.io, which provides AI-based software testing solutions for clients.\",\"url\":\"https:\/\/sdtimes.com\/author\/rajsubramanian\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"3 critical aspects of API testing - SD Times","description":"The biggest advantage of APIs is the level of abstraction they provide by exposing only the data that are needed to communicate with another system","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:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/","og_locale":"en_US","og_type":"article","og_title":"3 critical aspects of API testing - SD Times","og_description":"The biggest advantage of APIs is the level of abstraction they provide by exposing only the data that are needed to communicate with another system","og_url":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/","og_site_name":"SD Times","article_publisher":"https:\/\/www.facebook.com\/SDTimesD2","article_published_time":"2019-07-22T17:00:05+00:00","article_modified_time":"2019-07-22T16:07:40+00:00","og_image":[{"width":640,"height":426,"url":"https:\/\/sdtimes.com\/wp-content\/uploads\/2019\/07\/work-731198_640-1.jpg","type":"image\/jpeg"}],"author":"Raj Subramanian","twitter_card":"summary_large_image","twitter_creator":"@sdtimes","twitter_site":"@sdtimes","twitter_misc":{"Written by":"Raj Subramanian","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#article","isPartOf":{"@id":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/"},"author":{"name":"Raj Subramanian","@id":"https:\/\/sdtimes.com\/#\/schema\/person\/09486cd28a3ead2b2f1ef2cd9f561162"},"headline":"3 critical aspects of API testing","datePublished":"2019-07-22T17:00:05+00:00","dateModified":"2019-07-22T16:07:40+00:00","mainEntityOfPage":{"@id":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/"},"wordCount":1174,"publisher":{"@id":"https:\/\/sdtimes.com\/#organization"},"image":{"@id":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2019\/07\/work-731198_640-1.jpg","keywords":["API","API testing"],"articleSection":["Latest News"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/","url":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/","name":"3 critical aspects of API testing - SD Times","isPartOf":{"@id":"https:\/\/sdtimes.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#primaryimage"},"image":{"@id":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2019\/07\/work-731198_640-1.jpg","datePublished":"2019-07-22T17:00:05+00:00","dateModified":"2019-07-22T16:07:40+00:00","description":"The biggest advantage of APIs is the level of abstraction they provide by exposing only the data that are needed to communicate with another system","breadcrumb":{"@id":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#primaryimage","url":"https:\/\/sdtimes.com\/wp-content\/uploads\/2019\/07\/work-731198_640-1.jpg","contentUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2019\/07\/work-731198_640-1.jpg","width":640,"height":426},{"@type":"BreadcrumbList","@id":"https:\/\/sdtimes.com\/api\/3-critical-aspects-of-api-testing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sdtimes.com\/"},{"@type":"ListItem","position":2,"name":"3 critical aspects of API testing"}]},{"@type":"WebSite","@id":"https:\/\/sdtimes.com\/#website","url":"https:\/\/sdtimes.com\/","name":"SD Times","description":"Software Development News","publisher":{"@id":"https:\/\/sdtimes.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sdtimes.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sdtimes.com\/#organization","name":"SD Times","url":"https:\/\/sdtimes.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/","url":"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png","contentUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png","width":225,"height":90,"caption":"SD Times"},"image":{"@id":"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SDTimesD2","https:\/\/x.com\/sdtimes","https:\/\/www.linkedin.com\/company\/sdtimes\/"]},{"@type":"Person","@id":"https:\/\/sdtimes.com\/#\/schema\/person\/09486cd28a3ead2b2f1ef2cd9f561162","name":"Raj Subramanian","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sdtimes.com\/#\/schema\/person\/image\/3eeca286360b3996d7f06e8cffbc0e34","url":"https:\/\/secure.gravatar.com\/avatar\/ea01f7c6125b1d54c940dded8cd9fca8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ea01f7c6125b1d54c940dded8cd9fca8?s=96&d=mm&r=g","caption":"Raj Subramanian"},"description":"Raj Subramanian, a former developer, currently works as a Developer Evangelist for Testim.io, which provides AI-based software testing solutions for clients.","url":"https:\/\/sdtimes.com\/author\/rajsubramanian\/"}]}},"_links":{"self":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts\/36333"}],"collection":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/users\/798"}],"replies":[{"embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/comments?post=36333"}],"version-history":[{"count":1,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts\/36333\/revisions"}],"predecessor-version":[{"id":36335,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts\/36333\/revisions\/36335"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/media\/36334"}],"wp:attachment":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/media?parent=36333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/categories?post=36333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/tags?post=36333"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/coauthors?post=36333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}