how to inject API_BASE_URL (a string) in an angular service
this autogenerated service (by NSwagStudio) needs an API_BASE_URL (InjectionToken) value in order to perform http requests
how and where i can inject it?
/* tslint:disable */
//----------------------
// <auto-generated>
// Generated using the NSwag toolchain v11.12.16.0 (NJsonSchema v9.10.19.0 (Newtonsoft.Json v9.0.0.0)) (http://NSwag.org)
// </auto-generated>
//----------------------
// ReSharper disable InconsistentNaming
import 'rxjs/add/observable/fromPromise';
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/catch';
import { Observable } from 'rxjs/Observable';
import { Injectable, Inject, Optional, InjectionToken } from '@angular/core';
import { HttpClient, HttpHeaders, HttpParams, HttpResponse, HttpResponseBase, HttpErrorResponse } from '@angular/common/http';
export const API_BASE_URL = new InjectionToken<string>('API_BASE_URL');
@Injectable()
export class DocumentService {
private http: HttpClient;
private baseUrl: string;
protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;
constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
this.http = http;
this.baseUrl = baseUrl ? baseUrl : "";
}
getAll(): Observable<string | null> {
let url_ = this.baseUrl + "/api/Document";
url_ = url_.replace(/[?&]$/, "");
let options_ : any = {
observe: "response",
responseType: "blob",
headers: new HttpHeaders({
"Content-Type": "application/json",
"Accept": "application/json"
})
};
return this.http.request("get", url_, options_).flatMap((response_ : any) => {
return this.processGetAll(response_);
}).catch((response_: any) => {
if (response_ instanceof HttpResponseBase) {
try {
return this.processGetAll(<any>response_);
} catch (e) {
return <Observable<string | null>><any>Observable.throw(e);
}
} else
return <Observable<string | null>><any>Observable.throw(response_);
});
}
protected processGetAll(response: HttpResponseBase): Observable<string | null> {
...........code
........
....
}
}
may someone give me some super quick tips about how InjectioToken works and how inject it into this service?
Angular5 - Nswag
angular nswag
add a comment |
this autogenerated service (by NSwagStudio) needs an API_BASE_URL (InjectionToken) value in order to perform http requests
how and where i can inject it?
/* tslint:disable */
//----------------------
// <auto-generated>
// Generated using the NSwag toolchain v11.12.16.0 (NJsonSchema v9.10.19.0 (Newtonsoft.Json v9.0.0.0)) (http://NSwag.org)
// </auto-generated>
//----------------------
// ReSharper disable InconsistentNaming
import 'rxjs/add/observable/fromPromise';
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/catch';
import { Observable } from 'rxjs/Observable';
import { Injectable, Inject, Optional, InjectionToken } from '@angular/core';
import { HttpClient, HttpHeaders, HttpParams, HttpResponse, HttpResponseBase, HttpErrorResponse } from '@angular/common/http';
export const API_BASE_URL = new InjectionToken<string>('API_BASE_URL');
@Injectable()
export class DocumentService {
private http: HttpClient;
private baseUrl: string;
protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;
constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
this.http = http;
this.baseUrl = baseUrl ? baseUrl : "";
}
getAll(): Observable<string | null> {
let url_ = this.baseUrl + "/api/Document";
url_ = url_.replace(/[?&]$/, "");
let options_ : any = {
observe: "response",
responseType: "blob",
headers: new HttpHeaders({
"Content-Type": "application/json",
"Accept": "application/json"
})
};
return this.http.request("get", url_, options_).flatMap((response_ : any) => {
return this.processGetAll(response_);
}).catch((response_: any) => {
if (response_ instanceof HttpResponseBase) {
try {
return this.processGetAll(<any>response_);
} catch (e) {
return <Observable<string | null>><any>Observable.throw(e);
}
} else
return <Observable<string | null>><any>Observable.throw(response_);
});
}
protected processGetAll(response: HttpResponseBase): Observable<string | null> {
...........code
........
....
}
}
may someone give me some super quick tips about how InjectioToken works and how inject it into this service?
Angular5 - Nswag
angular nswag
add a comment |
this autogenerated service (by NSwagStudio) needs an API_BASE_URL (InjectionToken) value in order to perform http requests
how and where i can inject it?
/* tslint:disable */
//----------------------
// <auto-generated>
// Generated using the NSwag toolchain v11.12.16.0 (NJsonSchema v9.10.19.0 (Newtonsoft.Json v9.0.0.0)) (http://NSwag.org)
// </auto-generated>
//----------------------
// ReSharper disable InconsistentNaming
import 'rxjs/add/observable/fromPromise';
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/catch';
import { Observable } from 'rxjs/Observable';
import { Injectable, Inject, Optional, InjectionToken } from '@angular/core';
import { HttpClient, HttpHeaders, HttpParams, HttpResponse, HttpResponseBase, HttpErrorResponse } from '@angular/common/http';
export const API_BASE_URL = new InjectionToken<string>('API_BASE_URL');
@Injectable()
export class DocumentService {
private http: HttpClient;
private baseUrl: string;
protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;
constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
this.http = http;
this.baseUrl = baseUrl ? baseUrl : "";
}
getAll(): Observable<string | null> {
let url_ = this.baseUrl + "/api/Document";
url_ = url_.replace(/[?&]$/, "");
let options_ : any = {
observe: "response",
responseType: "blob",
headers: new HttpHeaders({
"Content-Type": "application/json",
"Accept": "application/json"
})
};
return this.http.request("get", url_, options_).flatMap((response_ : any) => {
return this.processGetAll(response_);
}).catch((response_: any) => {
if (response_ instanceof HttpResponseBase) {
try {
return this.processGetAll(<any>response_);
} catch (e) {
return <Observable<string | null>><any>Observable.throw(e);
}
} else
return <Observable<string | null>><any>Observable.throw(response_);
});
}
protected processGetAll(response: HttpResponseBase): Observable<string | null> {
...........code
........
....
}
}
may someone give me some super quick tips about how InjectioToken works and how inject it into this service?
Angular5 - Nswag
angular nswag
this autogenerated service (by NSwagStudio) needs an API_BASE_URL (InjectionToken) value in order to perform http requests
how and where i can inject it?
/* tslint:disable */
//----------------------
// <auto-generated>
// Generated using the NSwag toolchain v11.12.16.0 (NJsonSchema v9.10.19.0 (Newtonsoft.Json v9.0.0.0)) (http://NSwag.org)
// </auto-generated>
//----------------------
// ReSharper disable InconsistentNaming
import 'rxjs/add/observable/fromPromise';
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/catch';
import { Observable } from 'rxjs/Observable';
import { Injectable, Inject, Optional, InjectionToken } from '@angular/core';
import { HttpClient, HttpHeaders, HttpParams, HttpResponse, HttpResponseBase, HttpErrorResponse } from '@angular/common/http';
export const API_BASE_URL = new InjectionToken<string>('API_BASE_URL');
@Injectable()
export class DocumentService {
private http: HttpClient;
private baseUrl: string;
protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;
constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
this.http = http;
this.baseUrl = baseUrl ? baseUrl : "";
}
getAll(): Observable<string | null> {
let url_ = this.baseUrl + "/api/Document";
url_ = url_.replace(/[?&]$/, "");
let options_ : any = {
observe: "response",
responseType: "blob",
headers: new HttpHeaders({
"Content-Type": "application/json",
"Accept": "application/json"
})
};
return this.http.request("get", url_, options_).flatMap((response_ : any) => {
return this.processGetAll(response_);
}).catch((response_: any) => {
if (response_ instanceof HttpResponseBase) {
try {
return this.processGetAll(<any>response_);
} catch (e) {
return <Observable<string | null>><any>Observable.throw(e);
}
} else
return <Observable<string | null>><any>Observable.throw(response_);
});
}
protected processGetAll(response: HttpResponseBase): Observable<string | null> {
...........code
........
....
}
}
may someone give me some super quick tips about how InjectioToken works and how inject it into this service?
Angular5 - Nswag
angular nswag
angular nswag
asked Jan 10 '18 at 7:27
alexalex
4911628
4911628
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
On the parent module create a provider for API_BASE_URL
export function getBaseUrl(): string {
return AppConsts.baseUrl;
}
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule],
providers: [{ provide: API_BASE_URL, useFactory: getBaseUrl }],
bootstrap: [AppComponent]
})
export class AppModule {}
and then define a AppConsts class with static properties as such
export class AppConsts {
static baseUrl = "your_api_base_url";
}
Worked for me, hope it help. This solution is based on aspnet boilerpate angular project, which for me give the best standards on architecture.
I leave you here the url for the angular project + the url for this specific code.
getBaseUrl did the trick for me
– bluee
Feb 5 at 4:21
But if I have several different client files and sevaral API_BASE_URL variables in each files how can I set provider for each of them in one module file. There will be conflict. I tried use 'AP_BASE_URL'. And other thing is there is no need for factory. You can use useValue instead of factory. Then you can set value directly from environment or as you use AppConsts
– Janne Harju
Feb 10 at 11:03
add a comment |
As mentioned above, best is to put this in your environment settings then Angular will replace the appropriate base url depending on the environment you're in, e.g. in dev:
export const environment = {
production: false,
apiRoot: "https://localhost:1234",
};
Then you can just use useValue in your provider (everything else removed for simplicity):
...
import { environment } from '@env/environment';
@NgModule({
imports: [ ... ],
declarations: [ ... ],
providers: [
{
provide: API_BASE_URL,
useValue: environment.apiRoot
},
...
]
exports: [ ... ]
})
export class AppModule {}
To use the @env alias as shown above you need to make an addition to the tsconfig.json as follows:
{
...
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@env/*": [ "environments/*" ]
},
etc...
}
And Angular will replace the corresponding environment settings depending on the ---env flag used.
Hi Matt, When I try to implement your code,API_BASE_URL
is of course undefined and it's not possible to compile. Where should I import it from? Thanks
– Nico
11 hours ago
Hi @Nico, have edited my answer to show where this is set up.
– Matt
6 hours ago
add a comment |
THe best practice to put all constants in environment.ts and environment.prod.ts. Just create a new property their and import in your service. Your code will look like this:
// environment.ts
export const environment = {
production: false,
API_BASE_URL: "baseUrlOfApiForDevelopment",
};
// environment.prod.ts
export const environment = {
production: false,
API_BASE_URL: "baseUrlOfApiForProduction",
};
Now you need to import in your service to use it.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f48182290%2fhow-to-inject-api-base-url-a-string-in-an-angular-service%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
On the parent module create a provider for API_BASE_URL
export function getBaseUrl(): string {
return AppConsts.baseUrl;
}
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule],
providers: [{ provide: API_BASE_URL, useFactory: getBaseUrl }],
bootstrap: [AppComponent]
})
export class AppModule {}
and then define a AppConsts class with static properties as such
export class AppConsts {
static baseUrl = "your_api_base_url";
}
Worked for me, hope it help. This solution is based on aspnet boilerpate angular project, which for me give the best standards on architecture.
I leave you here the url for the angular project + the url for this specific code.
getBaseUrl did the trick for me
– bluee
Feb 5 at 4:21
But if I have several different client files and sevaral API_BASE_URL variables in each files how can I set provider for each of them in one module file. There will be conflict. I tried use 'AP_BASE_URL'. And other thing is there is no need for factory. You can use useValue instead of factory. Then you can set value directly from environment or as you use AppConsts
– Janne Harju
Feb 10 at 11:03
add a comment |
On the parent module create a provider for API_BASE_URL
export function getBaseUrl(): string {
return AppConsts.baseUrl;
}
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule],
providers: [{ provide: API_BASE_URL, useFactory: getBaseUrl }],
bootstrap: [AppComponent]
})
export class AppModule {}
and then define a AppConsts class with static properties as such
export class AppConsts {
static baseUrl = "your_api_base_url";
}
Worked for me, hope it help. This solution is based on aspnet boilerpate angular project, which for me give the best standards on architecture.
I leave you here the url for the angular project + the url for this specific code.
getBaseUrl did the trick for me
– bluee
Feb 5 at 4:21
But if I have several different client files and sevaral API_BASE_URL variables in each files how can I set provider for each of them in one module file. There will be conflict. I tried use 'AP_BASE_URL'. And other thing is there is no need for factory. You can use useValue instead of factory. Then you can set value directly from environment or as you use AppConsts
– Janne Harju
Feb 10 at 11:03
add a comment |
On the parent module create a provider for API_BASE_URL
export function getBaseUrl(): string {
return AppConsts.baseUrl;
}
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule],
providers: [{ provide: API_BASE_URL, useFactory: getBaseUrl }],
bootstrap: [AppComponent]
})
export class AppModule {}
and then define a AppConsts class with static properties as such
export class AppConsts {
static baseUrl = "your_api_base_url";
}
Worked for me, hope it help. This solution is based on aspnet boilerpate angular project, which for me give the best standards on architecture.
I leave you here the url for the angular project + the url for this specific code.
On the parent module create a provider for API_BASE_URL
export function getBaseUrl(): string {
return AppConsts.baseUrl;
}
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule],
providers: [{ provide: API_BASE_URL, useFactory: getBaseUrl }],
bootstrap: [AppComponent]
})
export class AppModule {}
and then define a AppConsts class with static properties as such
export class AppConsts {
static baseUrl = "your_api_base_url";
}
Worked for me, hope it help. This solution is based on aspnet boilerpate angular project, which for me give the best standards on architecture.
I leave you here the url for the angular project + the url for this specific code.
answered Jul 26 '18 at 15:11
Guido DizioliGuido Dizioli
198211
198211
getBaseUrl did the trick for me
– bluee
Feb 5 at 4:21
But if I have several different client files and sevaral API_BASE_URL variables in each files how can I set provider for each of them in one module file. There will be conflict. I tried use 'AP_BASE_URL'. And other thing is there is no need for factory. You can use useValue instead of factory. Then you can set value directly from environment or as you use AppConsts
– Janne Harju
Feb 10 at 11:03
add a comment |
getBaseUrl did the trick for me
– bluee
Feb 5 at 4:21
But if I have several different client files and sevaral API_BASE_URL variables in each files how can I set provider for each of them in one module file. There will be conflict. I tried use 'AP_BASE_URL'. And other thing is there is no need for factory. You can use useValue instead of factory. Then you can set value directly from environment or as you use AppConsts
– Janne Harju
Feb 10 at 11:03
getBaseUrl did the trick for me
– bluee
Feb 5 at 4:21
getBaseUrl did the trick for me
– bluee
Feb 5 at 4:21
But if I have several different client files and sevaral API_BASE_URL variables in each files how can I set provider for each of them in one module file. There will be conflict. I tried use 'AP_BASE_URL'. And other thing is there is no need for factory. You can use useValue instead of factory. Then you can set value directly from environment or as you use AppConsts
– Janne Harju
Feb 10 at 11:03
But if I have several different client files and sevaral API_BASE_URL variables in each files how can I set provider for each of them in one module file. There will be conflict. I tried use 'AP_BASE_URL'. And other thing is there is no need for factory. You can use useValue instead of factory. Then you can set value directly from environment or as you use AppConsts
– Janne Harju
Feb 10 at 11:03
add a comment |
As mentioned above, best is to put this in your environment settings then Angular will replace the appropriate base url depending on the environment you're in, e.g. in dev:
export const environment = {
production: false,
apiRoot: "https://localhost:1234",
};
Then you can just use useValue in your provider (everything else removed for simplicity):
...
import { environment } from '@env/environment';
@NgModule({
imports: [ ... ],
declarations: [ ... ],
providers: [
{
provide: API_BASE_URL,
useValue: environment.apiRoot
},
...
]
exports: [ ... ]
})
export class AppModule {}
To use the @env alias as shown above you need to make an addition to the tsconfig.json as follows:
{
...
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@env/*": [ "environments/*" ]
},
etc...
}
And Angular will replace the corresponding environment settings depending on the ---env flag used.
Hi Matt, When I try to implement your code,API_BASE_URL
is of course undefined and it's not possible to compile. Where should I import it from? Thanks
– Nico
11 hours ago
Hi @Nico, have edited my answer to show where this is set up.
– Matt
6 hours ago
add a comment |
As mentioned above, best is to put this in your environment settings then Angular will replace the appropriate base url depending on the environment you're in, e.g. in dev:
export const environment = {
production: false,
apiRoot: "https://localhost:1234",
};
Then you can just use useValue in your provider (everything else removed for simplicity):
...
import { environment } from '@env/environment';
@NgModule({
imports: [ ... ],
declarations: [ ... ],
providers: [
{
provide: API_BASE_URL,
useValue: environment.apiRoot
},
...
]
exports: [ ... ]
})
export class AppModule {}
To use the @env alias as shown above you need to make an addition to the tsconfig.json as follows:
{
...
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@env/*": [ "environments/*" ]
},
etc...
}
And Angular will replace the corresponding environment settings depending on the ---env flag used.
Hi Matt, When I try to implement your code,API_BASE_URL
is of course undefined and it's not possible to compile. Where should I import it from? Thanks
– Nico
11 hours ago
Hi @Nico, have edited my answer to show where this is set up.
– Matt
6 hours ago
add a comment |
As mentioned above, best is to put this in your environment settings then Angular will replace the appropriate base url depending on the environment you're in, e.g. in dev:
export const environment = {
production: false,
apiRoot: "https://localhost:1234",
};
Then you can just use useValue in your provider (everything else removed for simplicity):
...
import { environment } from '@env/environment';
@NgModule({
imports: [ ... ],
declarations: [ ... ],
providers: [
{
provide: API_BASE_URL,
useValue: environment.apiRoot
},
...
]
exports: [ ... ]
})
export class AppModule {}
To use the @env alias as shown above you need to make an addition to the tsconfig.json as follows:
{
...
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@env/*": [ "environments/*" ]
},
etc...
}
And Angular will replace the corresponding environment settings depending on the ---env flag used.
As mentioned above, best is to put this in your environment settings then Angular will replace the appropriate base url depending on the environment you're in, e.g. in dev:
export const environment = {
production: false,
apiRoot: "https://localhost:1234",
};
Then you can just use useValue in your provider (everything else removed for simplicity):
...
import { environment } from '@env/environment';
@NgModule({
imports: [ ... ],
declarations: [ ... ],
providers: [
{
provide: API_BASE_URL,
useValue: environment.apiRoot
},
...
]
exports: [ ... ]
})
export class AppModule {}
To use the @env alias as shown above you need to make an addition to the tsconfig.json as follows:
{
...
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@env/*": [ "environments/*" ]
},
etc...
}
And Angular will replace the corresponding environment settings depending on the ---env flag used.
edited 6 hours ago
answered Nov 24 '18 at 6:23
MattMatt
4,38432426
4,38432426
Hi Matt, When I try to implement your code,API_BASE_URL
is of course undefined and it's not possible to compile. Where should I import it from? Thanks
– Nico
11 hours ago
Hi @Nico, have edited my answer to show where this is set up.
– Matt
6 hours ago
add a comment |
Hi Matt, When I try to implement your code,API_BASE_URL
is of course undefined and it's not possible to compile. Where should I import it from? Thanks
– Nico
11 hours ago
Hi @Nico, have edited my answer to show where this is set up.
– Matt
6 hours ago
Hi Matt, When I try to implement your code,
API_BASE_URL
is of course undefined and it's not possible to compile. Where should I import it from? Thanks– Nico
11 hours ago
Hi Matt, When I try to implement your code,
API_BASE_URL
is of course undefined and it's not possible to compile. Where should I import it from? Thanks– Nico
11 hours ago
Hi @Nico, have edited my answer to show where this is set up.
– Matt
6 hours ago
Hi @Nico, have edited my answer to show where this is set up.
– Matt
6 hours ago
add a comment |
THe best practice to put all constants in environment.ts and environment.prod.ts. Just create a new property their and import in your service. Your code will look like this:
// environment.ts
export const environment = {
production: false,
API_BASE_URL: "baseUrlOfApiForDevelopment",
};
// environment.prod.ts
export const environment = {
production: false,
API_BASE_URL: "baseUrlOfApiForProduction",
};
Now you need to import in your service to use it.
add a comment |
THe best practice to put all constants in environment.ts and environment.prod.ts. Just create a new property their and import in your service. Your code will look like this:
// environment.ts
export const environment = {
production: false,
API_BASE_URL: "baseUrlOfApiForDevelopment",
};
// environment.prod.ts
export const environment = {
production: false,
API_BASE_URL: "baseUrlOfApiForProduction",
};
Now you need to import in your service to use it.
add a comment |
THe best practice to put all constants in environment.ts and environment.prod.ts. Just create a new property their and import in your service. Your code will look like this:
// environment.ts
export const environment = {
production: false,
API_BASE_URL: "baseUrlOfApiForDevelopment",
};
// environment.prod.ts
export const environment = {
production: false,
API_BASE_URL: "baseUrlOfApiForProduction",
};
Now you need to import in your service to use it.
THe best practice to put all constants in environment.ts and environment.prod.ts. Just create a new property their and import in your service. Your code will look like this:
// environment.ts
export const environment = {
production: false,
API_BASE_URL: "baseUrlOfApiForDevelopment",
};
// environment.prod.ts
export const environment = {
production: false,
API_BASE_URL: "baseUrlOfApiForProduction",
};
Now you need to import in your service to use it.
answered Jan 10 '18 at 7:33
Sandip JaiswalSandip Jaiswal
1,4571612
1,4571612
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f48182290%2fhow-to-inject-api-base-url-a-string-in-an-angular-service%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown