Вызовы API организацию в ионной (угловой) применение


Я делаю прототип серверного API-вызовов в моей ионные (угловой) приложения. Я рассматриваю этот вариант использования:

@IonicPage({/* */})
@Component({/* */})
export class SomePage {
  constructor(private api: Api) { }

  ngOnInit() {
    this.api.user.getList();
  }
}

Для достижения этого у меня есть что-то вроде этого:

@Injectable()
export class Api {
  constructor(
    public user: UserApi,
    public event: EventApi,
    public search: SearchApi
  ) {

  }
}

@Injectable()
export class UserApi extends BaseApi {
  private static readonly ENDPOINT: string = "user/";

  constructor(public http: HttpClient) {
    super(UserApi.ENDPOINT);
  }

  getList() {
    return this.http.get(this.url);
  }
}

export class BaseApi {
  private host: string = "https://my-site.com/api/";
  protected url: string;

  constructor(endpoint: string) {
    this.url = this.host + endpoint;
  }
}

Следующих целей:

  • Отдельно API Service от других Servicies
  • Сплит один API Service в маленьких частях, где все работают на единую сущность

И у меня есть несколько вопросов о моем подходе:

  • Есть ли подводные камни в таком подходе?
  • Это "хороший" подход к организации вызовов API? Что я могу улучшить или сделать по-другому?


102
2
задан 22 февраля 2018 в 08:02 Источник Поделиться
Комментарии