2017-01-26 14 views
0

Я хочу запросить метаданные действия OData, чтобы узнать, какие параметры ожидаются и как они называются.Как запросить метаданные действия OData?

Я знаю, что я могу понять это, набрав link-to-service-root.com/service.svc/$metadata. Тем не менее, в этом случае я должен вырыть полный вывод метаданных.

Вместо этого я ищу элегантный способ сделать это. Возможно, существует запрос link-to-service-root.com/service.svc/$metadata/Action('Namespace.NameOfAction') (вдохновленный записью в блоге на queryable odata metadata).

Спасибо за ваш ввод!

ответ

1

Вы можете получить действие (или действия) из EDM, а затем проиграть с параметрами. Позвольте мне знать, если это помогает.

String serviceRoot = "http://services.odata.org/V4/TripPinServiceRW/"; 
    EdmMetadataRequest request = ODataClientFactory.getClient().getRetrieveRequestFactory().getMetadataRequest(serviceRoot); 
    ODataRetrieveResponse<Edm> response = request.execute(); 
    Edm edm = response.getBody(); 
    List<EdmAction> edmActions = edm.getSchemas().get(0).getActions(); //get the first schema 
    for (EdmAction action : edmActions) { 
     System.out.println("Action name: " + action.getName()); 
     List<String> actionParamNames = action.getParameterNames(); 
     System.out.println("Parameters: "); 
     for (String actionParamName : actionParamNames) { 
      EdmParameter param = action.getParameter(actionParamName); 
      System.out.println(param.getName() + " (" + param.getType().getName() + ")"); 
      //getMaxLength //getPrecision //isNullable //isCollection //etc. 
     } 
     System.out.println("---------------------"); 
    } 

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

  • Нет связанных вопросов^_^