50 lines
867 B
TypeScript
50 lines
867 B
TypeScript
import axios, {type AxiosInstance} from "axios";
|
|
|
|
export abstract class Api
|
|
{
|
|
public baseURL: string;
|
|
|
|
protected constructor(baseURL: string)
|
|
{
|
|
this.baseURL = baseURL;
|
|
}
|
|
|
|
build()
|
|
{
|
|
const instance: AxiosInstance = axios.create({
|
|
baseURL: this.baseURL
|
|
});
|
|
instance.interceptors.request.use((config) =>
|
|
{
|
|
config.withCredentials = true;
|
|
return config;
|
|
})
|
|
return instance;
|
|
}
|
|
}
|
|
|
|
export class AuthApi extends Api
|
|
{
|
|
constructor()
|
|
{
|
|
super("http://localhost:8089/api/iam-backend");
|
|
}
|
|
|
|
static create()
|
|
{
|
|
return new AuthApi().build();
|
|
}
|
|
}
|
|
|
|
export class MavenApi extends Api
|
|
{
|
|
constructor()
|
|
{
|
|
super("http://localhost:8080");
|
|
}
|
|
|
|
static create()
|
|
{
|
|
return new MavenApi().build();
|
|
}
|
|
} |