{"id":5034,"date":"2025-01-23T10:47:01","date_gmt":"2025-01-23T15:47:01","guid":{"rendered":"https:\/\/frontendmasters.com\/blog\/?p=5034"},"modified":"2025-01-23T10:47:02","modified_gmt":"2025-01-23T15:47:02","slug":"api-testing-clients","status":"publish","type":"post","link":"https:\/\/frontendmasters.com\/blog\/api-testing-clients\/","title":{"rendered":"API Testing Clients"},"content":{"rendered":"\n<p>I was just working on a POST API at work. You POST some data to a URL endpoint, you expect a response. Buckle up, that&#8217;s the job sometimes. Happy path responses, error responses, handling incomplete or bad data, etc.<\/p>\n\n\n\n<p>You <em>can<\/em> just rawdog a web browser for this kind of work, building some kind of repeatable way to do the POST then using the Network tab in DevTools to see what you&#8217;re sending and getting. <\/p>\n\n\n\n<p>But there better tools. I typically think of <a href=\"https:\/\/www.postman.com\/\">Postman<\/a> for this, and I&#8217;m sure it&#8217;s a very nice app. But it can also feel like a bit much, with a homepage full of AI talk and enterprise plans and whatnot. I mention this because I serendipitously happen to run across two new-to-me tools that seemed to fit the bill for my work:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/hoppscotch.io\/\">Hoppscotch<\/a> \u2014 Browser Based &amp; <a href=\"https:\/\/github.com\/hoppscotch\/hoppscotch\">Open Source<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/yaak.app\/\">Yaak<\/a> \u2014 Native App(s) &amp; <a href=\"https:\/\/github.com\/mountain-loop\/yaak\">Open Source<\/a><\/li>\n<\/ul>\n\n\n\n<p>I tend to prefer browser-based tools, but I went with Yaak just because then it would &#8220;just work&#8221; with my local dev environment without a proxy or anything. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I was just working on a POST API at work. You POST some data to a URL endpoint, you expect a response. Buckle up, that&#8217;s the job sometimes. Happy path responses, error responses, handling incomplete or bad data, etc. You can just rawdog a web browser for this kind of work, building some kind of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5035,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"sig_custom_text":"","sig_image_type":"featured-image","sig_custom_image":0,"sig_is_disabled":false,"inline_featured_image":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[29],"tags":[290,76],"class_list":["post-5034","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-the-beat","tag-api","tag-json"],"acf":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2025\/01\/yaak.png?fit=2424%2C1424&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/5034","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/comments?post=5034"}],"version-history":[{"count":1,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/5034\/revisions"}],"predecessor-version":[{"id":5036,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/5034\/revisions\/5036"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media\/5035"}],"wp:attachment":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media?parent=5034"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/categories?post=5034"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/tags?post=5034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}