Как выполнить почтовый запрос с обратной связью 4 - PullRequest
0 голосов
/ 07 марта 2019

После некоторых исследований я обнаружил петлевые прокси-серверы, которые позволили мне выполнить некоторые запросы с помощью метода get.Но я не знаю, как я могу выполнить запрос POST с данными в теле запроса.

мой сервис

import {getService} from '@loopback/service-proxy';
import {inject, Provider} from '@loopback/core';
import {StorageApiDataSource} from '../datasources';
/**
 * user for  both storageApi service and authApi service
 */
export interface StorageApiService {
  // this is where you define the Node.js methods that will be
  // mapped to the SOAP operations as stated in the datasource
  // json file.

  getrestdata(id?: number): Promise<StorageApiResponseData>;
  saveFile(token?: string,requestBody:any): Promise<StorageApiResponseData>;

}
export interface StorageApiResponseData {
  file_id: string;
  direct_url: string;
}

export class StorageApiServiceProvider implements Provider<StorageApiService> {
  constructor(
    // storageApi must match the name property in the datasource json file
    @inject('datasources.storageApi')
    protected dataSource: StorageApiDataSource = new StorageApiDataSource(),
  ) {}

  value(): Promise<StorageApiService> {
    return getService(this.dataSource);
  }
}

Ответы [ 2 ]

1 голос
/ 05 июля 2019

В вашем файле источника данных добавьте еще один шаблон для вашей функции post в массиве операций, где postFunction - это имя функции.И добавьте то же самое в свой сервисный интерфейс.

"operations": [{
      "template": {
        "method": "POST",
        "url": "{POST-API-URL}",
        "headers": {
          "accepts": "application/json",
          "content-type": "application/json"
        },
        "json": {
          "param1": "{value1}",
          "param2": "{value2}",
          "param3": "{value3}"
        }
      },
      "functions": {
        "postFunction": [
          "value1",
          "value2",
          "value3"
        ]
      }
    }]
0 голосов
/ 05 июля 2019

я наконец-то нашел ответ после глубоких поисков.Нам просто нужно определить метод как POST и добавить несколько параметров, которые будут использоваться в качестве переменных для параметров формы запроса.надеюсь, это поможет кому-то здесь.

 {
  "name": "SendNotif",
    "connector": "rest",
    "baseURL": "",
    "crud": false,
   "options": {
   "headers": {
           "accept": "application/json",
           "authorization": " MY AUTH KEY",
            "content-type": "application/json"
              }
  },
"operations": [
  { "template": {
     "method": "GET",
     "url":"MY URL"

     },
     "functions": {
      "send_sms": ["PARAM1","PARAM2","PARAM3"]
    },
   "template": {
     "method": "POST",
     "url":"MY URL"

     },
     "functions": {
      "send_sms":["PARAM1","PARAM2","PARAM3"]
    }
 }
]
}
...