我注册了一个函数如下:
individualType.Function(nameof(IndividualsController.Photo)).Returns<byte[]();
功能定义是:
/// <summary>
/// Returns a photo for the specified individual.
/// </summary>
[HttpGet]
[AllowAnonymous]
public IHttpActionResult Photo([FromODataUri] int key, [FromUri] string size = "M", [FromUri] string shape = "S")
我们已经有了上传照片的请求。要做到这一点的理想方法是发布到同一个端点。
当我按如下方式注册操作时,两个端点都不起作用。
var action = individualType.Action(nameof(IndividualsController.Photo));
action.Parameter<string>("hexEncodedPhoto");
action.Returns<UploadIndividualPhotoResult>();
当我将其更改为此时,两者都起作用,但在不同的端点处是不合需要的。
var action = individualType.Action(nameof(IndividualsController.UploadPhoto));
action.Parameter<string>("hexEncodedPhoto");
action.Returns<UploadIndividualPhotoResult>();
此方法的签名目前是:
[HttpPost]
[Auth(AccessRight = SecurityType.PeopleEdit)]
public async Task<IHttpActionResult> UploadPhoto([FromODataUri] int key, ODataActionParameters parameters)
是否可以在OData中的同一路线上同时具有功能(GET)和动作(POST)?
答案 0 :(得分:0)
从OData规范的角度来看,同一名称空间下的每个元素都应该具有唯一的名称。所以,我认为你的要求是合理的。
如果不对,请告诉我。