十大微服務面試問題

banq發表於2021-05-20

問題1: 逐步說明您如何開發REST API。

回答: 假設,如果我必須開發一個新的REST API,以從給定產品的庫存中獲取可用物品的數量。在高階別上,我將執行以下操作,

  1. 確定適用於該API的HTTP方法,
  2. 確定API的端點,
  3. 確保網址到控制器的對映到位,
  4. 部署應用程式,並確保API框架執行正常。
  5. 接下來,按照編碼指南和專案程式碼結構新增所需的業務邏輯,
  6. 在API中新增所需的驗證,
  7. 新增邏輯以從資料來源獲取產品庫存,
  8. 在API中包括異常處理
  9. 新增單元測試用例,
  10. 測試API

 
問題2:
 開發REST API時,何時使用HTTP動詞GET,PUT,POST,DELETE?

回答: 假設我們必須建立API,以便從庫存中建立,更新,刪除和檢視產品資訊。在這種情況下,我將使用

  • GET,用於檢視庫存中的產品資訊
  • POST用於在庫存中建立產品資訊
  • PUT用於更新庫存中的產品資訊
  • Delete以從庫存中刪除產品資訊

 
問題3:
 URI引數和查詢字串引數有什麼區別?

答: 好的,讓我用一個例子來解釋一下。
api / product / {productname} / items,此處productname是URI引數。
api / product / items?productname = mobile,此處productname是查詢字串引數。
 

問題4: 如何從REST API返回錯誤響應和有效響應?

回答: 為了返回有效的響應,將使用200狀態程式碼。對於返回錯誤,將使用適當的狀態程式碼,例如,如果在庫存中未找到產品,則返回404錯誤。如果發生一些未處理的異常,則返回500錯誤,依此類推。
 

問題5: 您已經開發了一個REST API作為微服務的一部分,並將其構建並部署在本地計算機上。現在,如何在本地計算機上測試REST API?

回答: 一旦將應用程式部署到本地或伺服器上,我通常使用postman來測試API。另外,在REST API的開發過程中,我還將包括單元測試用例。
 

問題6:  REST API已部署在開發伺服器上,並已與UI整合。現在,如果需要,您將如何從UI除錯REST API呼叫?

回答: 我們可以使用開發人員工具並查詢對API的網路呼叫。例如,在Google Chrome瀏覽器中,使用F12,我們可以啟動開發人員工具。然後從“網路”選項卡中,我們可以過濾掉XHR請求,並檢視任何API URL的請求/響應。在捕獲了有關請求有效負載的必需資訊之後,將進一步檢視日誌以查詢正在發生的情況,如果給定的請求有效負載需要,還將透過程式碼進行除錯。
 

問題7: 您如何驗證使用者訪問REST API?

回答: 我們使用身份驗證令牌,並將其作為請求標頭傳遞給API請求。
 

問題8: 什麼是過濾器/中介軟體?在哪種情況下,將使用它?

回答: 可以使用過濾器/中介軟體在API控制器執行之前或之後新增任何其他邏輯。例如,如果我們想在執行API之前強制執行身份驗證,授權,則可以在過濾器/中介軟體的幫助下完成。另一個示例可能是記錄API執行的進入和退出或測量時間。
 

問題9: 微服務中的日誌記錄和跟蹤有什麼區別?您使用哪些工具檢視它們?

回答: 透過跟蹤,可以跟蹤完整的請求,以便檢視API的執行路徑。我們通常根據相關性ID對其進行跟蹤。在這種情況下,即使請求也跨多個api,也可以檢視完整的執行跟蹤。我們使用了Jaeger(或任何其他跟蹤工具)工具。
日誌是除錯/故障排除的便捷參考。我們使用E lastic- L ogstash- K ibana進行日誌記錄。
 

問題10: 什麼是Swagger?有什麼用?

答案:  Swagger提供了一個不錯的UI,顯示了微服務的可用API。它還提供了嘗試和執行API的功能。當我們必須與其他團隊(例如文件等)一起工作時,我們也將其用作方便參考。


 



 
 

相關文章