【发布时间】:2018-12-17 14:44:02
【问题描述】:
我已经计划构建一个这样的多个服务端点来更新多个实体项。
/api/order(orderInfo) [httppost]
/api/orderChangeCurrency(orderCurrency) [httppost]
/api/orderChangeClientName(orderClientName) [httppost]
public class orderInfo()
{
public int orderID {get;set;}
public int orderType {get;set;}
}
public class orderCurrency()
{
public int orderID {get;set;}
public int currencyID {get;set;}
}
public class orderClientName()
{
public int orderID {get;set;}
public string firstName{get;set;}
public stringlastName{get;set;}
}
但我突然想到有一个端点来代替它来完成所有工作
/api/order(orderExtendedInfo) [httppost]
public class orderExtendedInfo()
{
public int orderID {get;set;}
public orderInfo? OrderInfo{get;set;}
public orderCurrency? OrderCurrency{get;set;}
public orderClientName? OrderClientName{get;set;}
}
在这种情况下,我将有一个业务逻辑,它会根据提供的信息(是否为空值)更新实体。
在这种特定情况下,是否有针对 API 端点的推荐做法或规则?
【问题讨论】:
-
您在寻找哪种“推荐”方式?更具体
-
我只是在寻找针对这种特殊情况的 API 设计实践。
-
我认为你的方法没问题。唯一的问题是,如果您遵循 REST,那么您的方法有点错误。休息专注于资源,因此,您不应该在 on 方法中处理多个资源。但是,这只是“纯粹”的 REST 指南,我认为它在我的日常工作中应用不多。
-
@jpgrassi 当你说好的方法时,你指的是单个端点还是多个端点?
标签: api asp.net-web-api api-design