2

У меня есть следующий класс EnumEnum не установился Api Explorer, когда в Serializable класса

public enum EventAccess { 
      PUBLIC("PUBLIC"), 
      EMPLOYEES_ONLY("EMPLOYEES_ONLY"), 

String name; 
private EventAccess(String name) { 
    this.name = name; 
} 
public String getName() { 
    return name; 
    } 
} 

Также у меня есть Serializable класс, который имеет перечисление в качестве одного из полей

public class EventAccessRequest implements Serializable{ 

private List<EventAccess> event_access = new ArrayList<>(); 

public EventAccessRequest() { 

} 

public List<EventAccess> getEvent_access() { 
    return event_access; 
} 

public void setEvent_access(List<EventAccess> event_access) { 
    this.event_access = event_access; 
    } 
} 

У меня есть метод @Api, который создает объект типа EventAccessRequest. Я устанавливаю значение этого запроса в Api Explorer, но он не устанавливает какое-либо поле перечисления, которое я в него помещал.

@ApiMethod(name = "fetchEventByEventAccess", path = "user/events/list-by-access/", httpMethod = HttpMethod.GET) 
    public RestfulResponse fetchEventByEventAccess(EventAccessRequest request)throws Exception 
    { 

      EventAccess x = request.getEvent_access().get(0); 

      return new RestfulResponse(Status.SUCCESS, "Events retrieved",request, 200); 
     } 

    } 

Я попытался вставить другие типы, которые не ENUM и устанавливает их значение, но когда я пытаюсь вставки Enum в Апи exploere в не устанавливает значение. , и поэтому мой объект запроса всегда пуст.

В чем может быть проблема?

+0

Если вы реализуете 'Serializable', вы должны предоставить [' serialVersionUID'] (http://stackoverflow.com/questions/285793/what-is-a-serialversionuid-and-why-should-i-use-it). – Michael

+0

@Michael большое спасибо, но serialVersionUID не может быть проблемой. Я пытаюсь проверить, изменился ли объект. – Ogbe

+1

Да, поэтому я разместил комментарий, а не ответ. :) – Michael

ответ

5

Ошибки в том, что вы были с помощью HTTPMethod = HttpMethod.GET вместо HTTPMethod = HttpMethod.POST так как и отправляет запрос нагрузки оплаты, вам нужно будет сделать свой метод HTTP ждать запроса после принять полезная нагрузка или тело запроса

поэтому она должна быть

@ApiMethod(name = "fetchEventByEventAccess", path = "user/events/list-by-access/", httpMethod = HttpMethod.POST) 

наблюдать HTTPMethod спасибо.

Смежные вопросы