Отправка параметров запроса в заголовках в API, созданный с обратной связью

#angular #typescript #loopback

#angular #typescript #обратная связь

Вопрос:

Я сгенерировал общий SDK из loopback с помощью loopback-sdk-builder и получил один из API в виде

public getData(customHeaders?: Function): Observable<any> { }

Выполняемый вызов должен иметь параметры запроса в URL, и, следовательно, мне нужно отправить пользовательские заголовки в call, например,

this.partnerApi.getData(()=>{header: {partnerId: 101}})

API обратной связи является

 Partner.remoteMethod('getData', {
  accepts: {arg: 'req', type: 'object',http: function(ctx) {    
    var req = ctx.req;   
    return req;
  }},
  returns: {arg: 'detail', type: 'object'},
  http: {"verb": "get"}
});
  

который генерируется loopback-sdk-builder как,

public getData(customHeaders?: Function): Observable<any> { }

Мне нужно вызвать этот сгенерированный API, и вызов (GET), наконец, должен быть

http://127.0.0.1:3000/api/Partners/getData?partnerId=1001

Вышеупомянутый вызов был исправен с AngularJS Loopback, но эта проблема связана с Angular6 Loopback

Любая помощь о том, как этого добиться, была бы оценена.

Комментарии:

1. это кажется противоречием. Параметры запроса означают, что вы отправляете информацию в самом URL, например GET localhost:8080/api /data ? partnerId=101 . Вы также можете отправить информацию в заголовках, но тогда это не будут параметры запроса

2. также опубликуйте свой сервисный код, также это неправильный способ отправки параметра запроса

3. спасибо за ответ @Joakim. Давайте еще больше сузим круг поиска. Допустим, мне нужно передать параметр customHeaders при вызове this.partnerApi.getData() . Есть какие-либо зацепки по этому поводу?

4. что ж, ответ на ваш вопрос заключается в том, что вы бы вызвали api, подобный GET localhost:8080/api /data?customHeaders=someStringValue. Но кажется неправильным иметь параметр запроса, называемый пользовательскими заголовками . Если вы хотите использовать параметры запроса, вы не должны называть их заголовками. Если что-то называется customHeaders, вероятно, предполагается, что это заголовки, а не параметры запроса.

5. да, вы поняли, но как вызвать эту функцию this.partnerApi.getData(()=>{header: {partnerId: 101}}) , чтобы она правильно срабатывала?