API 呼び出しが、それ自体がリソースではない (データ ストアから返されたリソースを含まない) 応答を送信する場合は、名詞ではなく動詞を使用する必要があります。
次のようなアクション メソッドを公開する UserPasswordsController コントローラーを使用できます。
[HttpPost()]
public HttpResponseMessage Validate()
{
if (!this.Request.Content.IsFormUrlEncodedContent())
{
return this.Request.CreateErrorResponse(
HttpStatusCode.BadRequest,
"Body of request must be form URL encoded."
);
}
var parameters = this.Request.Content.ReadAsFormDataAsync().Result;
var userName = parameters["userName"];
var password = parameters["password"];
// TODO: Validate user name and password
var isValid = true;
if(!isValid)
{
return this.Request.CreateErrorResponse(
HttpStatusCode.Forbidden,
String.Format(null, "The password provided for {0} is not valid.", userName)
);
}
return this.Request.CreateResponse(HttpStatusCode.OK);
}
そして、次のようなルートを登録します。
routes.MapHttpRoute(
name: "UserPasswords",
routeTemplate: "api/v1/validate",
defaults: new { controller = "userpasswords" }
);
検証するユーザー名とパスワードを含む検証エンドポイントにフォーム データを POST します。Forbidden ステータスはパスワードが無効であることを示し、パスワードが有効な場合は OK ステータスが返されます。
REST インターフェイスの作業に慣れておらず、実用的なアプローチを取りたい場合は、 Web API の設計 - 開発者が愛するインターフェイスの作成 をご覧になることを強くお勧めします。