{"id":4015,"date":"2017-09-14T12:19:53","date_gmt":"2017-09-14T19:19:53","guid":{"rendered":"http:\/\/www.couchbase.com\/blog\/?p=4015"},"modified":"2025-06-13T23:17:00","modified_gmt":"2025-06-14T06:17:00","slug":"powershell-couchbase-rest-api","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/powershell-couchbase-rest-api\/","title":{"rendered":"Couchbase REST API\ub97c \uc0ac\uc6a9\ud55c Powershell"},"content":{"rendered":"<div class=\"paragraph\">\n<p>PowerShell is a scripting environment \/ command line that comes with Windows and is also <a href=\"https:\/\/github.com\/powershell\/powershell\">available for Linux<\/a> and within Azure.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Maybe you\u2019ve used <a href=\"https:\/\/www.getpostman.com\/\">Postman<\/a> or <a href=\"https:\/\/www.telerik.com\/fiddler\">Fiddler<\/a> to make HTTP requests. Those are great, but not necessarily the right tools for automation or scripting.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>You may have heard of <a href=\"https:\/\/curl.haxx.se\/\">curl<\/a> before. It\u2019s a command line tool for making HTTP requests.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>If you\u2019re a .NET\/Windows developer (like me), maybe you aren\u2019t familiar with curl. I use PowerShell as my default command line every day (though I still consider myself a PowerShell neophyte). In this post, I\u2019ll show you how you can use PowerShell\u2019s <code>Invoke-WebRequest<\/code> to make HTTP requests (which you can use within PowerShell scripts for automation).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>You can check out the PowerShell <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/079PowershellREST\/src\">script I created on GitHub<\/a>. <em>Note: as of the time of writing this post, I\u2019m using PowerShell 5.1 on Windows 10.<\/em><\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_couchbase_rest_api\">Couchbase REST API<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Couchbase Server has a an extensive <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/rest-api\/rest-endpoints-all.html\">REST API<\/a> that you can use to manage and administrate just about every aspect of Couchbase Server. For this blog post, I\u2019m going to focus on the Full Text Search (FTS) API. I\u2019m going to show this because:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>Creating an FTS index is something you\u2019ll eventually want to automate<\/li>\n<li>You will probably want to share an FTS index you created with your team and\/or check it into source control<\/li>\n<li>Couchbase Console already shows you exactly how to do it with curl.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>I\u2019m not going to cover FTS in detail: I invite you to check out <a href=\"https:\/\/www.couchbase.com\/blog\/tag\/fts\/\">past blog posts on FTS<\/a>, and <a href=\"https:\/\/www.couchbase.com\/blog\/full-text-search-on-couchase-4-5-video\/\">this short video demonstrating full text search<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_full_text_search_review\">Full Text Search review<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>When you initially create an FTS index, you will probably use the built-in FTS UI in the Couchbase Console. This is fine when you are doing the initial development, but it\u2019s not practical if you want to share this index with your team, automate deployment, or take advantage of source control.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Fortunately, you can use the &#8220;Show index definition JSON&#8221; feature to see the JSON data that makes up the index definition. You can also have Couchbase Console generate the curl method for you.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/09\/07901-generate-curl-fts.gif\" alt=\"Generate FTS curl script\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Well, if you\u2019re using curl, that\u2019s very convenient. Here\u2019s an example:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code>curl -XPUT -H \"Content-Type: application\/json\" https:\/\/localhost:8094\/api\/index\/medical-condition -d '{ ... json payload ...}'<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>You can copy\/paste that into a script, and check the script into source control. But what if you don\u2019t use curl?<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_powershell_version_invoke_webrequest\">PowerShell version: Invoke-WebRequest<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>First, create a new PowerShell script. I called mine <code>createFtsIndex.ps1<\/code>. All this PowerShell script is going to do is create an FTS index on an existing bucket.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>You can start by pasting the &#8220;curl&#8221; command into this file. The bulk of this command is the JSON definition, which will be exactly the same.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Let\u2019s breakdown the rest of the curl command to see what\u2019s happening:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><code>-XPUT<\/code> &#8211; This is telling curl to use the PUT verb with the HTTP request<\/li>\n<li><code>-H \"Content-Type: application\/json\"<\/code> &#8211; Use a Content-Type header.<\/li>\n<li><code><a class=\"bare\" href=\"https:\/\/localhost:8094\/api\/index\/medical-condition\">https:\/\/localhost:8094\/api\/index\/medical-condition<\/a><\/code> &#8211; This is the URL of the REST endpoint. The &#8220;localhost&#8221; will vary based on where Couchbase is running, and the &#8220;medical-condition&#8221; part is just the name of the FTS index.<\/li>\n<li><code>-d '\u2026\u200bjson payload\u2026\u200b'<\/code> &#8211; The body of content that will be included in the HTTP request.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>PowerShell\u2019s <code>Invoke-WebRequest<\/code> can do all this stuff too, but the syntax is a bit different. Let\u2019s step through the equivalents:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><code>-Method PUT<\/code> &#8211; This is telling Invoke-WebRequest to use the PUT verb with the HTTP request, so you can replace <code>-XPUT<\/code><\/li>\n<li><code>-Header @{ \u2026\u200b }<\/code> &#8211; Specify headers to use with the request (more on this later)<\/li>\n<li><code>-Uri <a href=\"https:\/\/localhost:8094\/api\/index\/medical-condition\">https:\/\/localhost:8094\/api\/index\/medical-condition\"<\/a><\/code> &#8211; You just need to add &#8220;-Uri&#8221; in front<\/li>\n<li><code>-Body '\u2026\u200bjson payload\u2026\u200b'<\/code> &#8211; The body of content is included this way instead of using curl\u2019s <code>-d<\/code><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_headers\">Headers<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>PowerShell expects a &#8220;dictionary&#8221; that contains headers. The syntax for a literal dictionary in PowerShell is:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>@{\"key1\"=\"value1\"; \"key2\"=\"value2\"}<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>So then, to specify Content-Type:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>-Headers @{\"Content-Type\"=\"application\/json\"}<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>One thing that the curl output did <em>not<\/em> generate is the authentication information that you need to make a request to the API. With curl, you can specify basic authentication by adding the username\/password to the URL. It will then translate it into the appropriate Basic Auth headers.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>With PowerShell, it appears you have to do that yourself. My local Couchbase Server has credentials &#8220;Administrator&#8221; and &#8220;password&#8221; (please don\u2019t use those in production). Those need to be encoded into Base64 and added to the headers.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Then the full Headers dictionary looks like this:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>-Headers @{\"Authorization\" = \"Basic \"+[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(\"Administrator:password\")); \"Content-Type\"=\"application\/json\"}<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>You might think that\u2019s a bit noisy, and I agree. If you know a cleaner way to do this, I\u2019m dying to know. Please leave a comment.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_execute_the_powershell_script\">Execute the PowerShell script<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>To execute the script, simply type <code>.\\createFtsIndex.ps1<\/code> at the PowerShell command line.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/09\/07902-execute-powershell-script.png\" alt=\"Execute PowerShell script\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>You\u2019re now ready to make this a part of your deployment.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>UPDATE<\/strong>: An engineer at Couchbase, Chris Hillery, has brought a couple things to my attention that I think are worth mentioning in an update.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The animated GIF showing the &#8220;Show curl command&#8221; is a bit misleading. That curl command is the one you use to <em>replace an existing FTS index<\/em>. When you are creating an index for the first time, the index definition JSON is also generated for you in a pane on the right side of the screen.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/09\/07903-new-index-json.png\" alt=\"JSON generated for a new index\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>If you are creating a script to deploy an FTS index, and the index doesn\u2019t already exist, you\u2019ll need to use the latter. If your script is <em>replacing<\/em> an index, you\u2019ll need to use the former.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_summary\">Summary<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>PowerShell is a handy tool for scripting and automation. It\u2019s used by Azure, <a href=\"https:\/\/octopus.com\/\">Octopus Deploy<\/a>, and anywhere Windows is running. Use PowerShell to automate Couchbase REST API calls for things like Full Text Search indexes, and your team will thank you.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Need help? Reach out to me with questions by leaving a comment below or finding me on <a href=\"https:\/\/twitter.com\/mgroves\">Twitter @mgroves<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>PowerShell is a scripting environment \/ command line that comes with Windows and is also available for Linux and within Azure. Maybe you\u2019ve used Postman or Fiddler to make HTTP requests. Those are great, but not necessarily the right tools [&hellip;]<\/p>\n","protected":false},"author":71,"featured_media":4016,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,2165],"tags":[1393,1771,1950],"ppma_author":[8937],"class_list":["post-4015","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-full-text-search","tag-api","tag-curl","tag-rest-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Powershell with the Couchbase REST API - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Use PowerShell to interact with the Couchbase Server REST API. You can use Invoke-WebRequest like curl to make HTTP requests.\" \/>\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.couchbase.com\/blog\/ko\/powershell-couchbase-rest-api\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Powershell with the Couchbase REST API\" \/>\n<meta property=\"og:description\" content=\"Use PowerShell to interact with the Couchbase Server REST API. You can use Invoke-WebRequest like curl to make HTTP requests.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/powershell-couchbase-rest-api\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-14T19:19:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:17:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/079-hero-powershell.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"226\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Powershell with the Couchbase REST API\",\"datePublished\":\"2017-09-14T19:19:53+00:00\",\"dateModified\":\"2025-06-14T06:17:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/\"},\"wordCount\":960,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2017\\\/09\\\/079-hero-powershell.png\",\"keywords\":[\"API\",\"curl\",\"REST API\"],\"articleSection\":[\"Couchbase Server\",\"Full-Text Search\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/\",\"name\":\"Powershell with the Couchbase REST API - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2017\\\/09\\\/079-hero-powershell.png\",\"datePublished\":\"2017-09-14T19:19:53+00:00\",\"dateModified\":\"2025-06-14T06:17:00+00:00\",\"description\":\"Use PowerShell to interact with the Couchbase Server REST API. You can use Invoke-WebRequest like curl to make HTTP requests.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2017\\\/09\\\/079-hero-powershell.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2017\\\/09\\\/079-hero-powershell.png\",\"width\":800,\"height\":226,\"caption\":\"Powershell\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/powershell-couchbase-rest-api\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Powershell with the Couchbase REST API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/admin-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=gba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\\\/\\\/crosscuttingconcerns.com\",\"https:\\\/\\\/x.com\\\/mgroves\"],\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/author\\\/matthew-groves\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Powershell with the Couchbase REST API - The Couchbase Blog","description":"PowerShell\uc744 \uc0ac\uc6a9\ud558\uc5ec Couchbase Server REST API\uc640 \uc0c1\ud638 \uc791\uc6a9\ud569\ub2c8\ub2e4. curl\uacfc \uac19\uc740 Invoke-WebRequest\ub97c \uc0ac\uc6a9\ud558\uc5ec HTTP \uc694\uccad\uc744 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","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.couchbase.com\/blog\/ko\/powershell-couchbase-rest-api\/","og_locale":"ko_KR","og_type":"article","og_title":"Powershell with the Couchbase REST API","og_description":"Use PowerShell to interact with the Couchbase Server REST API. You can use Invoke-WebRequest like curl to make HTTP requests.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/powershell-couchbase-rest-api\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-09-14T19:19:53+00:00","article_modified_time":"2025-06-14T06:17:00+00:00","og_image":[{"width":800,"height":226,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/079-hero-powershell.png","type":"image\/png"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Powershell with the Couchbase REST API","datePublished":"2017-09-14T19:19:53+00:00","dateModified":"2025-06-14T06:17:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/"},"wordCount":960,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/079-hero-powershell.png","keywords":["API","curl","REST API"],"articleSection":["Couchbase Server","Full-Text Search"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/","url":"https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/","name":"Powershell with the Couchbase REST API - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/079-hero-powershell.png","datePublished":"2017-09-14T19:19:53+00:00","dateModified":"2025-06-14T06:17:00+00:00","description":"PowerShell\uc744 \uc0ac\uc6a9\ud558\uc5ec Couchbase Server REST API\uc640 \uc0c1\ud638 \uc791\uc6a9\ud569\ub2c8\ub2e4. curl\uacfc \uac19\uc740 Invoke-WebRequest\ub97c \uc0ac\uc6a9\ud558\uc5ec HTTP \uc694\uccad\uc744 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/079-hero-powershell.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/079-hero-powershell.png","width":800,"height":226,"caption":"Powershell"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/powershell-couchbase-rest-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Powershell with the Couchbase REST API"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"\ub9e4\ud29c \uadf8\ub85c\ube0c\uc2a4","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=gba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"Matthew D. Groves\ub294 \ucf54\ub529\uc744 \uc88b\uc544\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4. C#, jQuery, PHP \ub4f1 \ubb34\uc5c7\uc774\ub4e0 \ud480 \ub9ac\ud018\uc2a4\ud2b8\ub97c \uc81c\ucd9c\ud560 \uc815\ub3c4\ub85c \ucf54\ub529\uc744 \uc88b\uc544\ud569\ub2c8\ub2e4. 90\ub144\ub300\uc5d0 \ubd80\ubaa8\ub2d8\uc758 \ud53c\uc790 \uac00\uac8c\ub97c \uc704\ud574 QuickBASIC POS \uc571\uc744 \ub9cc\ub4e0 \uc774\ud6c4\ub85c \uc804\ubb38\uc801\uc73c\ub85c \ucf54\ub529\uc744 \ud574\uc654\uc2b5\ub2c8\ub2e4. \ud604\uc7ac Couchbase\uc758 \uc120\uc784 \uc81c\ud488 \ub9c8\ucf00\ud305 \uad00\ub9ac\uc790\ub85c \uc77c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uac00 \uc2dc\uac04\uc5d0\ub294 \uac00\uc871\uacfc \ud568\uaed8 \ucd95\uad6c \uacbd\uae30\ub97c \uad00\ub78c\ud558\uace0 \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0\uc5d0 \ucc38\uc5ec\ud558\uba70 \uc2dc\uac04\uc744 \ubcf4\ub0c5\ub2c8\ub2e4. \uadf8\ub294 .NET\uc758 AOP, .NET\uc758 \ud504\ub85c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4, Pluralsight \uc800\uc790, Microsoft MVP\uc758 \uc800\uc790\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/matthew-groves\/"}]}},"acf":[],"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/4015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=4015"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/4015\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/4016"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=4015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=4015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=4015"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=4015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}