WebAPI 2 : 기본 GET ALL이 잘못된 매개 변수로 호출 됨

샤 자드

Visual Studio의 EF 및 스캐 폴딩 webapi 컨트롤러와 함께 WebAPI 2를 사용하고 있습니다. 각 컨트롤러는 4 개의 기본 동사 (GET, PUT, DELETE, POST)와 5 개의 동작으로 생성됩니다. GET 작업에는 두 가지 버전이 있습니다.

  1. IQueryable<entity> GetEntities ()
  2. Task<IHttpActionResult> GetEntity(GUID key) // 기본값은 int id이지만 guid로 변경했습니다.

컨트롤러에 특성 라우팅 및 경로 접두사를 사용하고 있습니다. 더 나은 URL 관리를위한 멋진 키워드입니다.[RoutePrefix("api/v3/Company")]

문제 :

이상적으로는 잘못된 매개 변수가 url로 전송되면 오류를 반환해야하지만 오류가 발생하지 않고 대신 매개 변수가없는 작업으로 돌아갑니다. 잘못된 GUID를 보내면 오류가 표시됩니다.

내가 전화하는 것처럼 : http://localhost:8080/api/v3/Company/1f7dc74f-af14-428d-aa31-147628e965b2

올바른 결과를 보여줍니다.

내가 전화 할 때 : http://localhost:8080/api/v3/Company/1f7dc74f-af14-428d-aa31-147628e96500(잘못된 키)

다시 GetEntity()기능으로 설정 되고 모든 기록을 보여줍니다.

내가 호출 할 때 : http://localhost:8080/api/v3/Company/1(GUID 길이 매개 변수가 아님)

동일한 작업을 수행하고 모든 레코드를 표시합니다.

속성을 사용하고 있습니다 [Route("{id:guid}")]

이에 대한 지침을 얻을 수 있다면 정말 감사합니다!

Nkosi

경로가 기본적으로 다시 규칙 기반 매핑으로 설정되었을 가능성이 높습니다. 라우팅이 기본 경로임을 알 수 있도록 작업에 경로 속성을 명시 적으로 적용해야합니다.

[RoutePrefix("api/v3/Company")]
public class CompanyController : ApiController {

    //GET api/v3/Company
    [HttpGet]
    [Route("")] //Default Get
    public IQueryable GetEntities() { ... }

    //GET api/v3/Company/1f7dc74f-af14-428d-aa31-147628e965b2
    [HttpGet]
    [Route("{id:guid}")] // ALSO NOTE THAT THE PARAMETER NAMES HAVE TO MATCH
    public Task<IHttpActionResult> GetEntity(Guid id) { ... }

    //...other code removed for brevity
}

웹 API 구성에서 속성 라우팅이 활성화되어 있는지 확인하십시오.

config.MapHttpAttributeRoutes();

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

어셈블리 호출이 잘못된 주소로 매핑 됨

분류에서Dev

개체의 속성이 기본 함수 호출로 설정되었습니다. 잘못된 연습입니까?

분류에서Dev

Symfony2-잘못된 매개 변수 번호

분류에서Dev

Angular2 redirectTo로 인해 canActivate가 호출되기 전에 URL 매개 변수가 손실 됨

분류에서Dev

(C ++) 생성자, 기본 매개 변수, "오버로드 된 호출 ... 모호함"

분류에서Dev

MySQL을 SQL Server로 변환 한 후 올바른 함수에 잘못된 길이 매개 변수가 전달됨

분류에서Dev

단일 URL 호출에서 형식이 잘못된 CSV (3 개의 csv 연결됨) 읽기

분류에서Dev

Postman에서 Rest API를 호출 할 수 있으며 Java에서 400 개의 잘못된 요청이 표시됨

분류에서Dev

C ++의 모든 기본 매개 변수로 함수를 호출 할 때 매개 변수 이름 사용

분류에서Dev

개조 주석이 없습니다. (매개 변수 # 2) @GET 호출

분류에서Dev

C-매개 변수없이 매개 변수로 선언 된 함수 호출?

분류에서Dev

크기가 잘못된 매개 변수

분류에서Dev

올바른 매개 변수 이후에도 호출시 잘못된 인수의 수 또는 유형

분류에서Dev

올바른 매개 변수 이후에도 호출시 잘못된 인수의 수 또는 유형

분류에서Dev

Angular의 URL 매개 변수가 잘못 이스케이프 됨

분류에서Dev

Angular의 URL 매개 변수가 잘못 이스케이프 됨

분류에서Dev

NSIS 기본이 잘못됨

분류에서Dev

기호에 대한 Clojure 문자열이 잘못된 결과로 평가됨

분류에서Dev

잘못된 매개 변수 번호 : 혼합 된 이름 및 위치 매개 변수

분류에서Dev

nodejs의 get 메소드에서 잘못된 매개 변수 가져 오기

분류에서Dev

WebAPI GET 긴 매개 변수

분류에서Dev

AddDllDirectory에 대한이 호출이 "매개 변수가 잘못됨"과 함께 실패하는 이유는 무엇입니까?

분류에서Dev

C ++에서 FORTRAN 서브 루틴을 호출하면 잘못된 매개 변수 값이 생성됩니다.

분류에서Dev

Ajax 호출 : 잘못된 웹 서비스 호출, 매개 변수 값 누락 : 'itemTypes'

분류에서Dev

Jquery ID 매개 변수가 잘못됨

분류에서Dev

Python에서 기본 매개 변수로 C ++ 함수 호출

분류에서Dev

콜론을 사용하면 PHP 바운드 매개 변수 데이터베이스가 잘못된 매개 변수 수를 호출합니다.

분류에서Dev

잘못된 매개 변수 번호, 중복 업데이트시 PDO 실패

분류에서Dev

엔티티 업데이트 중 WebApi v2 Odata에서 JayData가 잘못된 동작을 수행하면 패치 엔드 포인트가 호출됩니다.

Related 관련 기사

  1. 1

    어셈블리 호출이 잘못된 주소로 매핑 됨

  2. 2

    개체의 속성이 기본 함수 호출로 설정되었습니다. 잘못된 연습입니까?

  3. 3

    Symfony2-잘못된 매개 변수 번호

  4. 4

    Angular2 redirectTo로 인해 canActivate가 호출되기 전에 URL 매개 변수가 손실 됨

  5. 5

    (C ++) 생성자, 기본 매개 변수, "오버로드 된 호출 ... 모호함"

  6. 6

    MySQL을 SQL Server로 변환 한 후 올바른 함수에 잘못된 길이 매개 변수가 전달됨

  7. 7

    단일 URL 호출에서 형식이 잘못된 CSV (3 개의 csv 연결됨) 읽기

  8. 8

    Postman에서 Rest API를 호출 할 수 있으며 Java에서 400 개의 잘못된 요청이 표시됨

  9. 9

    C ++의 모든 기본 매개 변수로 함수를 호출 할 때 매개 변수 이름 사용

  10. 10

    개조 주석이 없습니다. (매개 변수 # 2) @GET 호출

  11. 11

    C-매개 변수없이 매개 변수로 선언 된 함수 호출?

  12. 12

    크기가 잘못된 매개 변수

  13. 13

    올바른 매개 변수 이후에도 호출시 잘못된 인수의 수 또는 유형

  14. 14

    올바른 매개 변수 이후에도 호출시 잘못된 인수의 수 또는 유형

  15. 15

    Angular의 URL 매개 변수가 잘못 이스케이프 됨

  16. 16

    Angular의 URL 매개 변수가 잘못 이스케이프 됨

  17. 17

    NSIS 기본이 잘못됨

  18. 18

    기호에 대한 Clojure 문자열이 잘못된 결과로 평가됨

  19. 19

    잘못된 매개 변수 번호 : 혼합 된 이름 및 위치 매개 변수

  20. 20

    nodejs의 get 메소드에서 잘못된 매개 변수 가져 오기

  21. 21

    WebAPI GET 긴 매개 변수

  22. 22

    AddDllDirectory에 대한이 호출이 "매개 변수가 잘못됨"과 함께 실패하는 이유는 무엇입니까?

  23. 23

    C ++에서 FORTRAN 서브 루틴을 호출하면 잘못된 매개 변수 값이 생성됩니다.

  24. 24

    Ajax 호출 : 잘못된 웹 서비스 호출, 매개 변수 값 누락 : 'itemTypes'

  25. 25

    Jquery ID 매개 변수가 잘못됨

  26. 26

    Python에서 기본 매개 변수로 C ++ 함수 호출

  27. 27

    콜론을 사용하면 PHP 바운드 매개 변수 데이터베이스가 잘못된 매개 변수 수를 호출합니다.

  28. 28

    잘못된 매개 변수 번호, 중복 업데이트시 PDO 실패

  29. 29

    엔티티 업데이트 중 WebApi v2 Odata에서 JayData가 잘못된 동작을 수행하면 패치 엔드 포인트가 호출됩니다.

뜨겁다태그

보관