2017年3月31日金曜日

Web API あれこれ

久しぶりにVisual Studio 2015でのWeb API開発ネタです。

APIを非公開にしたい


ファイルを削除したり、ソースをコメントアウトすることなく、一部のAPIを非公開にしたいのです。
属性で指定できればスマートだと思うのですが、探しても見つかりませんでした。
仕方がないので、

 
public class SampleController : ApiController
{
    public object Post([FromBody]object value)
    {
        return this.NotFound();
 
        // 以降の処理はそのまま残す
  

のように、強制的に404エラーを返すようにしました。
別の方法ないですかね?


APIのルーティングを変更したい


一部のAPIのルーティングを変更する方法です。
Route属性を設定すればOKです。

 
public class SampleController : ApiController
{
    [Route("api/internal/sample")]
    public object Post([FromBody]object value)
    {


ただし、コントローラー名を直接指定する必要があり、

 
public class SampleController : ApiController
{
    [Route("api/internal/{controller}")]    // これはできない!
    public object Post([FromBody]object value)
    {


のように、WebApiConfigでは指定可能なcontrollerパラメーターを指定することはできず、エラーになります。
コントローラー名変更の際は注意が必要ですね。

またいつか、どこかで。

0 件のコメント:

コメントを投稿