十大微服务面试问题


问题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的功能。当我们必须与其他团队(例如文档等)一起工作时,我们也将其用作方便参考。