私は、既存のWCFサービスをWebAPIに変換することにより、WebAPI(および一般的にはREST)を学習しています。その過程で、CRUD以外の操作を処理するための最良の方法について混乱し始めています。これが私のサービス契約です:
[ServiceContract]
public interface IProxyHelper
{
[OperationContract]
List<ProxyInfo> GetUsersCurrentUserCanActAsProxyFor(int positionId, int appId);
[OperationContract]
void DeleteProxy(int id);
[OperationContract]
List<ProxyInfo> GetProxyData(int appId);
[OperationContract]
bool CanPositionProxy(int positionId, int appId);
[OperationContract]
void AddProxy(
string userRacf,
string proxyAsRacf,
int userPositionId,
int proxyPositionId,
string requestedByRacf,
int appId);
[OperationContract]
int GetPositionIdByRacf(string racf);
[OperationContract]
string GetRacfByPositionId(int positionId);
}
DeleteProxyやAddProxyIなどの一部のメソッドは、CRUDベースの方法論に簡単に移行できます。
質問が発生します:
GetProxyData-プロキシシステムは複数のアプリケーションで使用されています。api/Proxy/ 1を実行することはできますが、アプリケーション1のプロキシではなく、ProxyId 1を取得するためのものであるため、これは「不正行為」だと感じます。
GetUsersCurrentUserCanActAsProxyFor-これは私にとって複数のレベルで混乱しています。複数のパラメータをどのように処理する必要がありますか?また、CRUDメソッドにもうまく当てはまりません。
これは、WebAPI変換を中止する必要があることを意味しますか?そうでない場合、これらの非標準的な方法にどのように取り組む必要がありますか?