11

これは本当の頭を悩ませます。JSON Webサービスとして使用している2つのApiControllersを作成しました:-

namespace ControlTower.Controllers
{
    public class AirlinesController : ApiController
    {
        private static IEnumerable<Airline> MapAirlines()
        {
            return (Jetstream.AirlineObject.GetAirlines()).Select(x => x);
        }

        [HttpGet]
        public IEnumerable<Airline> GetAirlines()
        {
            return MapAirlines().AsEnumerable();
        }

        [HttpGet]
        public Airline GetAirlineByCode(string code)
        {
            return Jetstream.AirlineObject.GetAirline(code);
        }
    }
}

と:-

namespace ControlTower.Controllers
{
    public class ReviewsController : ApiController
    {
        private static IEnumerable<Review> MapReviews(int airline)
        {
            return (Jetstream.ReviewObject.GetReviews(airline)).Select(x => x);
        }

        [HttpGet]
        public IEnumerable<Review> GetReviews(int airline)
        {
            return MapReviews(airline).AsEnumerable();
        }

        [HttpGet]
        public Review GetReviewById(int review)
        {
            return Jetstream.ReviewObject.GetReview(review);
        }
    }
}

このルーティングでは:-

config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/get/{code}",
                defaults: new { code = RouteParameter.Optional }
            );

また、完全にアクセス/api/airline/get/baまたは機能している間、Re ​​view/api/airline/get/のバリエーションにアクセスしてもそうではありません。ここで私が見逃していることが本当に明白なものを誰かが見ることができますか?

助けていただければ幸いです。

4

1 に答える 1

19

デフォルト ルートは、「code」という名前のパラメータを想定しています。航空会社および/またはレビューという名前のパラメーターを受け入れるルートを追加するか、コントローラーにパラメーターの名前を明示的に伝える必要があります。

元。/api/reviews/get?airline=1

于 2012-11-09T02:06:47.197 に答える