我最近在Netskope系统设计面试中被问到以下问题,即为以下功能设计API(带有HTTP方法的完整URL路径),我无法很好地回答,所以我被拒绝了。我将我的解决方案粘贴在下面。我无法使用谷歌搜索找到解决方案。您能提供一些解决方案吗?
1. Create Virtual Machine
2. Reboot Virtual Machine
3. Shutdown Virtual Machine
我的解决方案
POST www.netskope.com/v1/create_vm/args?machineid="ABC"
POST www.netskope.com/v1/reboot_vm/args?machineid="ABC"
POST www.netskope.com/v1/shutdown_vm/args?machineid="ABC"
以下是对您的解决方案的一些想法以及它可能被拒绝的原因:
1。创建虚拟机:
要创建虚拟机,您可以使用 HTTP POST 方法以及资源 URL(请注意,
www.netskope.com
部分在此及以后被截断,因为这是描述 REST 端点的常见情况):
POST /v1/virtual-machines
请求示例:
POST /v1/virtual-machines
Content-Type: application/json
{
"machineId": "ABC",
"specs": {
"cpu": 2,
"memory": "4GB",
"storage": "100GB"
}
}
响应示例:
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"message": "Virtual machine created successfully",
"vmDetails": {
"machineId": "ABC",
"status": "running",
"specs": {
"cpu": 2,
"memory": "4GB",
"storage": "100GB"
}
}
}
2。重启虚拟机:
要重新启动虚拟机,您可以使用 HTTP POST 或 PUT 方法:
POST /v1/virtual-machines/{machineId}/reboot
请求示例:
POST /v1/virtual-machines/ABC/reboot
响应示例:
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"message": "Virtual machine rebooted successfully"
}
3.关闭虚拟机:
要关闭虚拟机,您可以再次使用 HTTP POST 或 PUT 方法:
POST /v1/virtual-machines/{machineId}/shutdown
请求示例:
POST /v1/virtual-machines/ABC/shutdown
响应示例:
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"message": "Virtual machine shutdown successful"
}