2017-01-05 2 views
1

RESTful API를 만드는 방법을 배우려면 Build RESTful API's with ASP.NET Web API 문서를 따르려고합니다.REST API가 예상 결과를 반환하지 않음

저는 첫 번째 프로젝트와 컨트롤러 인 Contact을 만들었습니다.

public class ContactController : Controller 
{ 
    // GET: Contact 
    public string[] Index() 
    { 
     return new string[] 
     { 
      "Hello", 
      "World" 
     }; 
    } 
} 

하지만 대신 기사 (["Hello","World"])에 설명 된 응답을 얻는, 브라우저에서 URL을로드 할 때. 내가받는 응답은 System.String[]입니다.

내가 무엇을 놓치고 있는지 이해할 수 없습니다.

기사는 2013 년입니다. 누군가 조금 좋은 새로운 기사를 알고 있습니까?

답변

1

당신이 지금 가지고있는 것은 단순한 ASP.NET MVC 컨트롤러입니다. 웹 API 컨트롤러의 경우 ApiController 대신 Controller에서 컨트롤러를 상속해야합니다

또한
public class ContactController : ApiController 

조치 이름은 HTTP 동사로 시작해야합니다. 당신이 /api/contact 엔드 포인트에 GET 요청을 보내드립니다 경우에 당신은 HTTP 메소드 'GET'를 지원하지 않는 오류를

요청한 리소스를 얻을 수 있습니다.

기본적으로 웹 API 컨트롤러의 경로에는 작업 이름이 사용되지 않습니다. 기본 경로 구성을 확인하면 api/{controller}/id이됩니다. 올바른 조치는 HTTP 요청 방법을 통해 선택됩니다. 귀하의 경우에는 GetXXX 또는 간단히 Get

+0

잘하는 데 도움이

public class ContactController : Controller { // GET: Contact public JsonResult Index() { return Json(new { value1: "Hello", value2: "world" }, JsonRequestBehavior.AllowGet); } } 

희망 같은 것을 할 수있는, 그래, 그 상황 것으로 보인다. 왜 그런 POS 문서인지 궁금합니다. 그것은 나중에 예제 중 하나가 될 때까지'ApiController' 또는'Get'을 언급하지 않습니다! –

+0

@JonathanWood 네, 왜 저자가 올바른 수업을 가르쳐주지 않았는지 궁금합니다. 스크린 샷에 대한 언급이 있습니다 - 새 컨트롤러를 추가하기위한 스캐 폴딩 템플릿은 * 빈 API 컨트롤러 * –

+0

다른 질문을 할 수 있습니까? JSON을 반환하는 것 같습니다. 이것을 구성 할 수 있습니까? –

0

이어야합니다. Web Apis에서 일반 원형을 반환 할 수 없습니다. .net에서 일반적인 MVC 웹 API를 사용하는 경우 적어도 그렇지 않습니다. 이러한 경우 그래서, 당신이

+0

감사합니다. 그러나이 기술은 조. –

관련 문제