typescript - Nestjs httpModule URL პარამეტრები ობიექტის სახით


არსებობს თუ არა გზა URL პარამეტრების გადასაცემად httpService-თვის NestJS-ში? ვცდილობ ამ URL-ის დაწერა უფრო სარგებლიანად და არ მინდა Axios-ის გამოყენება, რადგან Nest-ს აქვს HTTPModule.

აქ არის ის, რაც ამჟამად მაქვს და კარგად მუშაობს, მაგრამ ცუდად გამოიყურება:

const response = await this.httpService
      .get(`https://api.github.com/users/${username}/repos?per_page=5&sort=created:asc&client_id=${process.env.GITHUB_ID}&client_secret=${process.env.GITHUB_SECRET}`,)
      .toPromise();

მე მაქვს ნაპოვნი ეს სინტაქსი Angular-ისთვის, მაგრამ ეს არ მუშაობს:

const response = await this.httpService.get(
      `https://api.github.com/users/${username}/repos`,
      params: {
        per_page: 5,
        sort: created:asc,
        client_id: process.env.GITHUB_ID,
        client_secret: process.env.GITHUB_SECRET
      }).toPromise();

უნდა იყოს გზა, რომ ის უკეთესად გამოიყურებოდეს.

პასუხი #1

შენ აკლია ოფციის ობიექტისთვის გახსნისა და დახურვის ფიგურული ბრაკეტები.

const response = await this.httpService.get(
  `https://api.github.com/users/${username}/repos`,
  {
    params: {
      per_page: 5,
      sort: created:asc,
      client_id: process.env.GITHUB_ID,
      client_secret: process.env.GITHUB_SECRET
    }
  }
).toPromise();

ეს გარეშე, მთავარი იდეა არის გამოიყენოთ ვარიაბლი params ტიპის { per_page: 5, sort: created:asc, client_id: process.env.GITHUB_ID, client_secret: process.env.GITHUB_SECRET } (ვვარაუდობ, რომ Typescript-იც უხერხულ მდგომარეობაში იქნება, თუ აქ მნიშვნელობებს ტიპებად გამოიყენებთ)