nodejs_client_requirements.md
September 28, 2020 · View on GitHub
Генерация для NodeJS
- Для генерации клиента запустить команду
php artisan openapi:generate-client-nodejs - После успешной генерации по пути
<output_dir_template>-jsбудет лежать сгенерированный клиент - При первоначальной генерации нужно настроить связь с удаленным репозиторием, при последующих генерациях этого не требуется, нужно только запушить изменения.
Модуль Nest
Плагин умеет генерировать модуль для фреймворка nest, для подключения к nest нужно:
- Зарегистрировать конфиг модуля, например:
import { registerAs } from "@nestjs/config";
export default registerAs('customer-auth-client', () => ({
basePath: process.env.CUSTOMER_AUTH_URI
}));
У конфига можно задать два параметра:
basePath - базовый url для запросов. Обязателен
options - любые другие опиции которые поддерживает инстанс axios. Может быть undefined.
Имя, с которым регистрировать конфиг, берется из названия npm пакета: например, если имя пакета @ensi/customer-auth-client, то регистрировать нужно с именем customer-auth-client.
- Модуль экспортирует все классы из директории api клиента, что бы эти классы были доступны в di nest, модуль нужно зарегистрировать стандартным способом:
@Module({
imports: [
CustomerAuthClientModule // Импорт модуля
]
...
})
export class AppModule {}
После чего можно использовать классы апи сервисов через di, например, если в клиенте есть сервисы UsersApi и TokensApi, то:
@Controller()
export class AppController {
constructor(
private readonly usersService: UsersApi,
private readonly tokenService: TokensApi
) {}
@Get()
async getUserById(): Promise<any> {
const { data: user } = await this.usersService.getUserById(1);
return user;
}
}