Как получить доступ к запросам композитора гипер-книги из углового приложения? - PullRequest
0 голосов
/ 24 июня 2018

Я определил запрос в файле query.qry в моем приложении для составления гиперлогов:

query selectPersonsByHobby {
  description: "Select all persons with a certain hobby."
  statement:
      SELECT org.comp.myapp.Person
          WHERE (passTime CONTAINS (name == _$targetHobby ))
}

Вот соответствующая часть файла модели:

participant Person identified by id {
  o String id
  o String firstName
  o String lastName
  o String email
  o Interest[] passTime
}

concept Interest {
  o String name
  o String description
}

Как я могуполучить доступ к запросу из моего углового приложения и передать параметры;?

Правильно ли следующее:

return this.httpClient.get(`http://localhost:3000/api/queries/selectPersonsByHobby`, {_$targetHobby: "Football"});

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

из углового приложения, это можно сделать следующим образом:

В файле app.service.ts мы определили функцию getPersonByTargetHobby, в которой мы можем передать значение url и target hobby. Объединив url + targethobby, мы получим URL запроса.

/*app.service.ts File*/

import {Injectable} from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import {Observable} from 'rxjs/Observable';

const httpOptions = {
  headers: new HttpHeaders({ 'Content-Type': 'application/json' })
};

@Injectable()
export class AppService {

   constructor(private http:HttpClient) {}

   getPersonByTargetHobby(url, tagetHobby) {
    let queryUrl = url + tagetHobbys;
    return this.http.get(queryUrl);
  }
}

Функция Above {getPersonByTargetHobby}, к которой мы можем получить доступ в нашем компоненте следующим образом

 /* First we need to import the app service in our component file {app.component.ts}*/

import { AppService } from '../app.service'
export class ComponentName implements OnInit {
 constructor(private _appService: AppService){}     
 ngOnInit() {

   url = "http://localhost:3000/api/queries/selectPersonsByHobby?targetHobby="

   tagetHobby = "Football"

   this._appService.getPersonByTargetHobby(url, tagetHobby).subscribe(
     data => {
       console.log("query response", data);
     },
     err => console.error(err),
    () => {}
  );
}

Я проверил это, надеюсь, оно будет работать и для вас.

Выполнение вызовов API с помощью службы HttpClient: https://www.metaltoad.com/blog/angular-5-making-api-calls-httpclient-service

0 голосов
/ 29 июня 2018

Я думаю, что это будет работать для вас.

this.http.get("http://localhost:3000/api/queries/selectPersonsByHobby?targetHobby=Football")
...