0

翻訳のリストを提供する簡単なリソースがあります。get エンドポイントは言語を受け取り、翻訳の辞書を返します。更新は 1 つの翻訳のみに適用されるため、パッチとして行うのが適切であると考えました。

私の API コントローラーでは、put を正常に動作させることができますが、パッチ エンドポイントに対して行う呼び出しで 403 禁止エラーが発生し、その理由がわかりません。

 [HttpGet]
    // GET api/<controller>
    public Dictionary<string,string> Get(String id)
    {
        return TranslationSvc.GetTranslatedStrings(id);
    }



    [HttpPatch]
    public TranslationEntry Patch(TranslationEntry data)
    {//403 prevents this end point from ever executing
        if (TranslationSvc.UpdateTranslation(data.Lang, "", data.Translation.Key, data.Translation.Value))
        {
            return data;
        }
        else
        {
            //return a 500 error;
            throw new HttpResponseException(HttpStatusCode.InternalServerError);
        }
    }

    [HttpPut]
    public TranslationEntry Put(TranslationEntry data)
    {//works, but technically a put should be the full resource which is the full collection
        if (TranslationSvc.UpdateTranslation(data.Lang, "", data.Translation.Key, data.Translation.Value))
        {
            return data;
        }
        else
        {
            //return a 500 error;
            throw new HttpResponseException(HttpStatusCode.InternalServerError);
        }
    }
4

1 に答える 1