2017-11-12 3 views
0

저는 WEB API를 처음 접했습니다. 무지를 용서해주십시오. 특정 사용자가 참석할 이벤트 목록을 반환하려고합니다. 내 코드는 작동하지만 필요한 정보를 더 많이 반환합니다. API 호출시 반환되는 내용은 다음과 같습니다. [{ ""$ id ":"1 ","eventID ":"1 "}, {"$ id ":"2 ","eventID ":"2 "}]Web API에서 반환 된 목록의 형식을 변경하는 방법은 무엇입니까?

public HttpResponseMessage Get(string id) 
{ 
    List<GetEventAttend> events = null; 
    events = db.userattends.Where(x => x.userID == id).Select(s => new GetEventAttend() 
    { eventID = s.eventID }).ToList<GetEventAttend>(); 

    return Request.CreateResponse(HttpStatusCode.OK, events); 
} 

이 GetEventAttend 코드입니다 :

public class GetEventAttend 
{ 

    public string eventID { get; set; } 
} 

내가 { "1"의 형식으로 반환 할 수있는 방법이 있나요 "이 다음과 같이

내 컨트롤러 코드는 "}? 당신은 거의 대신 선택하는 것

+0

사용자가 설정 한 기준 처리. – CodeCaster

답변

1

새로운 GetEventAttend 그냥 eventID 필드를 선택하고 그 반환 할 수 있습니다

GetEventAttend 클래스 정말 작은
public HttpResponseMessage Get(string id) 
{ 
    var events = db.userattends.Where(x => x.userID == id).Select(s => s.eventID).ToList(); 

    return Request.CreateResponse(HttpStatusCode.OK, events); 
} 

아니면 것입니다 단지 데모 목적을 위해? 그것은 답변이 당신을 보여줍니다 때, 당신은 그 수업이 필요하지 않는 것보다 웹 API 결과에 대한 컨테이너입니다.

EDIT : CodeCaster에 포인트가 있습니다. 이 대답은 eventIds의 배열을 반환합니다. 이것은 현재로서는 충분할 것이지만, 나중 단계에서는 식별자만으로 구성된 경우에도 이벤트 배열을 반환 할 수 있습니다. 이제 이벤트에 대한 추가 정보를 포함하려는 경우 새 API를 작성하거나 변경 사항을 도입해야합니다. 당신은 아마 참조 처리 구성한 원래의 코드에서

, 즉를 사용하지 않도록 설정하는 방법에 the docs를 참조하십시오

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter; 
json.SerializerSettings.PreserveReferencesHandling = 
Newtonsoft.Json.PreserveReferencesHandling.None; 
+0

완벽하게 작동합니다. 감사합니다. –

+0

그러면 문자열 목록을 반환하도록 선택할 것입니다. 언젠가는 응답을 연장하려고 할 때 유지 관리가 안 좋습니다. – CodeCaster

+0

@ CodeCaster point 찍은, 나는 대답에 그것에 정교하게 자유를 가져 갔다. –