簡介
本文檔介紹在CMS(思科會議伺服器)上使用的4個基本API(應用程式介面)函式GET、POST、PUT和DELETE。 從CMS 2.9開始,Web管理GUI在「配置」選單下有一個API選單。本文檔將回顧新選單,並介紹兩種不同的API工具:Postman和Postman以及如何將其用於CMS配置。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文檔中的資訊可與CMS 2.9及更高版本配合使用,也可與不同的API客戶端(如Postman或Poster)配合使用。本文檔的API客戶端部分介紹了這些第三方工具。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
背景資訊
用於CMS的API是一種非常靈活的方式來配置其許多功能。此處要記憶或涵蓋的API功能太多了,因此請務必參考當前的API參考文檔。在撰寫本文時,此處提供了當前的API參考指南。
API請求和響應
API通訊是客戶端和伺服器之間的請求 — 響應關係。客戶端向伺服器發出請求。在處理請求(完成或拒絕執行操作)後,返迴響應。
本文所述的四項請求是:
- GET — 檢索現有資訊
- POST — 建立新資訊
- PUT — 修改現有資訊
- DELETE — 刪除現有資訊。
以下是用於配置CMS的基本API請求。
最常見的反應是200 OK。其他響應為4xx和5xx,它們是錯誤響應。
設定
CMS 2.9及更高版本
CMS 2.9引入了一個新的API選單,管理員可以更輕鬆地在CMS中修改設定和微調設定。 使用選單時,將顯示所有可用引數,這使得更改設定和啟用新功能變得快捷方便。
配置API對象
進入API選單後,可以將API對象篩選為要編輯/建立的對象,然後按一下對象旁邊的黑色箭頭進行更改。此示例說明如何查詢callLegProfiles並建立新的callLegProfile。
按一下Create New後,將顯示此螢幕,其中顯示CallLegProfiles的所有可用引數。將滑鼠懸停在某個特定引數上時,將彈出顯示每個選項的用途。
修改已建立的API對象
更改對象中的設定時,底部會顯示「修改」按鈕。這與來自第三方工具的PUT相同。
從API選單刪除API對象
若要刪除對象,您可以在「對象清單」首頁上啟用刪除專案的功能。按一下Allow delete以啟用要刪除的選項,如以下範例所示:
解釋API請求(使用第三方工具)
四個基本請求通過配置示例來說明。
HTTP POST
步驟1.使用POST建立物件。
在此示例中,使用此請求建立CMS空間。要通過API建立空間,請參閱API文檔。在本例中,我使用了CMS 2.4 API指南,但您應該使用最新的API指南(位於此處)
第6.2節介紹了如何建立和修改空間。
第一句表示,要建立空間,您需要向/coSpaces傳送帖子。然後,它表示空間的ID將位於200 OK的Location標頭中。太好了,你現在知道如何建立空間。您只需將POST傳送到https://<WebAdminIP>/api/v1/coSpaces。
指定POST的引數。
在文檔的6.2節中,您會看到一個表格,其中列出了您可以使用的所有引數。
例如:建立一個名為APITest的空間,並建立APITestURI的使用者部分
內容型別為application/x-www-form-urlencoded,內容為name=APITest&uri=APITestURI
新增此引數後,請求即完成,如下圖所示。
POST https://<WebAdminIP>/api/v1/coSpaces HTTP/1.1
Host: <WebAdminIP>
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
Authorization: Basic YWRtaW46QzFzYzBDMXNjMA==
Connection: keep-alive
name=APITest&uri=APITestURI
該圖顯示對上一個請求的響應。
HTTP/1.1 200 OK
Server: Apache
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains
Location: /api/v1/coSpaces/70ca0ed7-4e50-428c-b9ab-4e68faeb86ae
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
注意響應中的Location標題。
Location: /api/v1/coSpaces/70ca0ed7-4e50-428c-b9ab-4e68faeb86ae
70ca0ed7-4e50-428c-b9ab-4e68faeb86ae是新建空間的ID。當您需要將來發出以同一空間為目標的API請求時,該ID非常有用。
可以在CMS的WebAdmin中看到該空間。導覽至Configuration > Spaces。
該圖彙總了POST請求。
HTTP GET
步驟2.建立空間後,拉出其配置。
使用HTTP GET方法實現此目的。
使用通過Location標頭建立的空間的ID。URL是https://<WebAdminIP>/api/v1/coSpaces/70ca0ed7-4e50-428c-b9ab-4e68faeb86ae。 在此頁面上執行GET。
GET請求示例:
GET https://<WebAdminIP>/api/v1/coSpaces/70ca0ed7-4e50-428c-b9ab-4e68faeb86ae HTTP/1.1
Host: <WebAdminIP>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Cookie: session=logout
Authorization: Basic YWRtaW46QzFzYzBDMXNjMA==
Connection: keep-alive
GET請求的響應:
HTTP/1.1 200 OK
Server: Apache
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Type: text/xml
Vary: Accept-Encoding
Content-Length: 159
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
<?xml version="1.0"?><coSpace id="70ca0ed7-4e50-428c-b9ab-4e68faeb86ae"><name>APITest</name><autoGenerated>false</autoGenerated><uri>apitesturi</uri></coSpace>
附註:響應是空間的XML編碼配置。
該圖概述了請求GET。
HTTP PUT
步驟3.對空間進行更改(如果需要)。
此示例說明如何修改建立的空間。假設需要將輔助使用者部分新增到空間。
請參閱API文檔。它告訴需要使用的引數是:secondaryUri。
新增asdf的URI。寫一個與為POST建立的請求類似的請求。
PUT請求示例:
PUT https://172.18.105.244/api/v1/coSpaces/70ca0ed7-4e50-428c-b9ab-4e68faeb86ae HTTP/1.1
Host: 172.18.105.244
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 17
Cookie: session=b810c447daaeab6cdc6e019c
Authorization: Basic YWRtaW46QzFzYzBDMXNjMA==
Connection: keep-alive
secondaryUri=asdf
PUT請求的響應:
HTTP/1.1 200 OK
Date: Tue, 12 Apr 2016 19:11:02 GMT
Server: Apache
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains
Vary: Accept-Encoding
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Length: 0
可以在CMS的WebAdmin中看到這些更改。導覽至Configuration > Spaces。
通過GET:
<?xml version="1.0"?><coSpace id="70ca0ed7-4e50-428c-b9ab-4e68faeb86ae"><name>APITest</name><autoGenerated>false</autoGenerated><uri>apitesturi</uri><secondaryUri>asdf</secondaryUri></coSpace>
該圖概述了請求PUT。
HTTP刪除
步驟4.刪除空間(如果需要)。
DELETE方法類似於GET方法。
DELETE請求示例:
DELETE https://172.18.105.244/api/v1/coSpaces/70ca0ed7-4e50-428c-b9ab-4e68faeb86ae HTTP/1.1
Host: 172.18.105.244
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Cookie: session=4d13c7ebe739b662dc6e019c
Authorization: Basic YWRtaW46QzFzYzBDMXNjMA==
Connection: keep-alive
對DELETErequest的響應:
HTTP/1.1 200 OK
Date: Tue, 12 Apr 2016 19:16:37 GMT
Server: Apache
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains
Vary: Accept-Encoding
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Length: 0
可以在CMS的WebAdmin中看到這些更改。導覽至Configuration > Spaces。
通過GET:
<?xml version="1.0"?><failureDetails><coSpaceDoesNotExist /></failureDetails>
該圖概述了請求DELETE。
API使用者端
海報
海報中的頂部框是輸入請求的URL的位置。
User Auth欄位可按順序輸入使用者名稱和密碼。然後,如果您正在執行GET或DELETE,請選擇相應的按鈕。例如:按一下GET,系統將顯示一個彈出視窗,其中包含您的響應。對於DELETE,確保選中DELETE,然後按一下綠色按鈕。
對於POST和PUT,需要新增內容。選擇「引數」頁籤,然後新增引數的名稱和值。然後,返回「要傳送的內容」按鈕,從「引數」中選擇「正文」。
傳送您的POST和/或PUT。
郵遞員
在Postman中,在左上角,從下拉框中選擇您要使用的方法,並輸入請求URL。
對於授權,選擇Basic-Auth,然後輸入您的使用者名稱和密碼。然後,選擇更新請求。在標頭頁籤中,您可以看到授權標頭。
如果您的請求是POST/PUT,請導航至「正文」頁籤,選擇「x-www-form-urlencoded」,然後輸入您的引數和值。完成後,選擇Send。
驗證
每個請求中都會說明驗證方法。
疑難排解
目前尚無適用於此組態的具體疑難排解資訊。