如何区分参数相似的两个端点?

时间:2019-01-07 16:08:52

标签: c# asp.net-web-api

我有以下API端点:

sharedDatabase.perform(query, inZoneWith: nil) { (records, error) in
    guard let records = records, error == nil else {
        return reject("there is error", "no logs", error!)
    }
    NSLog("found results")
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
    let resultLogs = records.map { log in
      return [
        "log": log.object(forKey: "log") ?? "N/A" as __CKRecordObjCValue,
        "createdAt": formatter.string(from: log.creationDate ?? Date())
      ]
    }
    resolve(resultLogs)
}

由于他们期望使用类似的参数,因此我遇到了实现get方法的问题,但最终调用了Find端点。

我玩过《命令》,但不能解决我的问题。

我可以通过用

装饰Get端点来使其工作
public async Task<IActionResult> Find(FindParameters parameters)
public async Task<IActionResult> Get(GetParameters parameters)

public class GetParameters
{
   [NonDefault]
   public Guid GizmoId { get; set; }

   [Required(AllowEmptyStrings = false)]
   public string Name { get; set; }
}

public class FindParameters : PagingParameters
{
    public Guid? GizmoId { get; set; }
    public string Name { get; set; }
}

但是,我想避免这种情况,因为我的所有API都不再具有一致的约定。

如何设置端点,以便在实现get时调用Get端点,而find调用Find端点?

0 个答案:

没有答案