2016-01-28 3 views
1

Я использую библиотеку Api Cluster. Когда я пытаюсь создать несколько endpoint group, я мог бы использовать шаблон по умолчанию endpoint, но параметры конфигурации могут быть разными.API Cluster - использование пользовательской конфигурации группы для конечной точки по умолчанию

Scenario: if I don't mention 'endpoint' in group then value should be taken from default 'endpoint' pattern

Пожалуйста, посмотрите на этот код click here

+0

Он просто показывает «Привет, Плункер!». и я не вижу ничего .. В консоли он бросает ошибку Uncaught TypeError: Не удается прочитать свойство «empDetails» неопределенного – Siva

+0

Эта проблема взята из самой библиотеки и отслеживается в самой проблеме Github. https://github.com/ramsunvtech/apicluster/issues/3 –

ответ

1

Это один из ограничений в API Cluster 1.0.5 библиотеки JS.

Поскольку API Cluster 1.0.5 ожидает, что для параметра метода addAnother/defaults требуется три параметра, которые являются обязательными.

  1. имя
  2. конфигурации
  3. оконечные

Defaults/addAnother method creates the endpoint groups, each group is independent

Попробуйте, как показано ниже для вашей проблемы.

ApiCluster 
    .defaults({ 
    name: 'mydefault', 

    config: { 
     'employee': 'emp', 
     'details': 'defaultDetails', 
     'timesheet': 'timesheet' 
    }, 

    endpoints: { 
     "empDetails": "_employee_/_details_/:empId/profile" 
    } 
    }) 
    .addAnother({ 
    name: 'v1', 
    config: { 
     'employee': 'emp', 
     'details': 'v1Details', 
     'timesheet': 'timesheet' 
    }, 

    endpoints: { 
     "empDetails": "_employee_/_details_/:empId/profile" 
    } 
    }); 

var empDetailURL = ApiCluster 
    .use('v1') 
    .get('empDetails') 
    .arg({ 
    'empId': 1000 
    }) 
    .query({ 
    'confirm': 'yes', 
    'testAccount': 'yes' 
    }) 
    .url(); 
+0

Спасибо @Venkatraman! Помогает!!! – santy

1

Проблема заключается в линии № 164 (ApiCluster.js)

ApiCluster.generated = ApiCluster.data.apiUrls[groupName][name]; 

Он пытается получить 'empDetails' из v1 группы.

ApiCluster.generated = ApiCluster.data.apiUrls [ 'v1'] [ ''] empDetails

Исправление изменить линию,

ApiCluster.generated = ApiCluster.data.apiUrls[groupName] && ApiCluster.data.apiUrls[groupName][name] ? ApiCluster.data.apiUrls[groupName][name] : ApiCluster.data.apiUrls[ApiCluster.data.defaultGroupName][name]; 

Так, если свойство не доступен в запрошенной группе, то он будет читать его по умолчанию.

Вот URL с исправлением:
http://plnkr.co/edit/ys6btxjYH0xqh1kGuOVf?p=preview

+0

Ницца. Это будет обходным путем, а не исправлением. посмотрите на это http://plnkr.co/edit/Rnj30jIiKb1YWp0T9Akb?p=preview –

+0

Это было исправление проблемы, о которой сообщалось, для вашей новой проблемы .. замените это на ApiCluster.generated = ApiCluster.data.apiUrls [имя_группы] && ApiCluster.data.apiUrls [имя_группы] [имя]? ApiCluster.data.apiUrls [имя_группы] [имя]: ApiCluster.data.apiUrls [ApiCluster.data.defaultGroupName] [имя]; – Siva

+0

BTW, все еще проблема не исправлена. его возвращающий «emp/details/1000/profile? confirm = yes & testAccount = yes», но ожидается «emp/details_emp/1000/profile? confirm = yes & testAccount = yes» –

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

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