Hej, szybkie pytanko. Mam tak mały backend, który ma tylko kilka endpointów ( Używam #nestjs i #swagger ). Mam plik konfiguracyjny yaml, który mówi trochę o możliwościach jakie endpointy mają.
Np.

sortFields:
- name
- date
filterFields:
- name

Chodzi o to, że baza danych też jest tworzona na podstawie pliku konfiguracyjnego, a więc pola mogą mieć np. inne nazwy.

Chodzi o to, że ten plik jest dość elastyczny i zawiera całkiem
Hej, trochę słabo opisałeś ten problem. Co jest na podstawie tego pliku yaml tworzone? API? Baza? Jedno i drugie? O jakie "dynamiczne parametry do swaggera" pytasz?

Generalnie w większości enterprise-owych rozwiązań możesz pisać modele dziedzinowe, na ich podstawie modele bazodanowe (encje) i interfejsy/DTO dla endpointów. Potem z automatu masz zmiany w bazie przez ORM i automatyczne generowanie schematu swaggerowego. Wygląda to raczej podobnie i w NestJS i w C# i w Javie.
Moim zdaniem to może być trochę trudne do zrobienia, bo swagger raczej jest generowany statycznie na podstawie typów, nie jakichś dynamicznych wartości. Chyba lepiej zrobić endpoint, który będzie zwracał te dostępne wartości dla klienta.
Piszę mały serwis, który lata lokalnie na kompie i monitoruje kilka rzeczy. Używam node.js, ts i nest.js. Ponieważ serwis wystawia swaggera chciałbym go zabezpieczyć, ale równocześnie nie chcę trzymać sekretu na tym kompie bo jest pewne ryzyko, że zostanie przejęty. Czy da się wygenerować JWT np. online taki podpisanym moim kluczem prywatym, a potem tylko zweryfikować podpis w serwisie tylko kluczem publicznym?
Wydawało mi się to dość proste, ale gdy podaję publicKey
@wKontenerach: NestJS jest to framework opakowujący technologię NodeJS w architekturę modularną, jaka jest użyta we frameworku frontendowym Angular. NestJS jest polskim projektem napisanym przez Polaka Kamila Myśliwca.

Jeśli chcesz dowiedzieć się, jak hostować API napisane w NestJS przy użyciu Dockera, zajrzyj do najnowszego artykułu na blogu wKontenerach.

#wkontenerach #docker #kubernetes #devops #programowanie #programista #programista15k #nestjs
wKontenerach - @wKontenerach: NestJS jest to framework opakowujący technologię NodeJS...

źródło: comment_1662398169f1w8KJnpMIeclzrKMN4Gyr.jpg

Pobierz
Jak najlepiej wysyłać wybrane propsy z dokumentu w nestjs? Niby mogę zrobić to destrukturyzacja jednak nie wydaje mi się to zbytnio odpowiednią droga. Myślałem czy by nie napisać własnego interceptora i dekoratora do serializacji który będzie przyjmował DTO w którym podaje pola które chce otrzymać. W drugim podejściu mam łatwiej pisac typy które są zwracane przez funkcje. Co wy o tym myślicie? Które podejście jest lepsze?

#programowanie #nestjs #backend
Mirki z #devops #docker oraz #nodejs. Piszę sobie małą apkę w #nestjs i rzuca mi błędem:

ReferenceError: TextEncoder is not defined
Odkryłem, że mimo że w Dockerfile mam zadeklarowane

FROM node:16.16
to po

docker-compose up -d
odpalany jest node w wersji 10. Wiem, że Dockerfile jest dla budowania obrazu, ale w takim razie jak wymusić żeby przy komendzie wyżej odpalany był nodejs w żądanej wersji?
Chcę sobie ogarnąć różne endpointy w zależności od modułu,

Czyli mam adminModule, w nim userModule,postModule,tagModule itp gdzie endpoint jest /admin i do niego mają dostęp tylko zalogowane osoby z rolą admina,

mam userModule w nim, postModule, tagModule itp, z endpointem /user i do niego mają dostęp tylko zalogowane osoby

Teraz mam problem taki: Error: Schema must contain uniquely named types but contains multiple types named "User"

z tego co wyczytałem to problem
@schriker: o problemie trochę wiecej tutaj: https://github.com/nestjs/graphql/issues/721

w domyślnie powinnien utworzyć schema admin.gql , user,gql i zbindować go pod namespace tylko tego endpointa, tylko przy "code first" przy budowaniu scala go a podczas budowania, podczas "schema first" działa wszystko poprawnie

a jeśli chodzi o ten sposób bo potrzebuje zrobić re używalny moduł który można wpiąć pod inne aplikacje
Od pewnego czasu piszę w NestJS i co jakiś czas trafiam na jakieś przypadki z życia wzięte, które nie są ujęte w dokumentacji Nesta lub po prostu są poniekąd związane z zewnętrznymi bibliotekami. Jak już jakiś problem rozwiążę, to dzielę się tym na dev.to. Może komuś się przyda. Póki co trzy tematy związane z walidacją requestów:

Custom validation with database in NestJS:
https://dev.to/avantar/custom-validation-with-database-in-nestjs-gao

Validating nested objects with class-validator in NestJS
https://dev.to/avantar/validating-nested-objects-with-class-validator-in-nestjs-1gn8

Validating
Czy jest możliwość definiowania guardu dla modułu oraz dla jego submodułów ?

mam moduł admin

w nim moduły

user
tag
category

itp

itp chce zdefiniować guarda który dopuszcza tylko zalogowanego użytkownika z rolą admina i chcę to zrobić w jednym miejscu zamiast definiować go w każdym kontrolerze

W dokumentacji jest info że zdefiniowany guard w module staję się globalnym i też taki efekt mam, ale może jest na to jakieś rozwiązanie ?
Potrzebuje zrobić referencje jeden do wielu w mongoose i nestjs, mam owner i animals

w animals mam:

@Prop({ type: mongoose.Schema.Types.ObjectId, ref: 'Owner' })
owner: mongoose.Types.ObjectId;

ale w żaden sposób nie moge wyciagnąc ownera i referencje zwierząt

this.ownerModel.findOne({name: "juzek"}).populate('animals').exec();

Problem jest taki że w dokumentacji jest opisane to inaczej, w necie ludzie też mają z tym problem i robią to inaczej i też nie działa...

ktoś poradzi ?

#mongodb #mongoose #nestjs #
Jak wpiąć poprawnie subdoumenty w inny dokument ? nie ma o tym w dokumentacji a jedynie jest jedynie używając @Prop([raw({})]) ale wole mieć to w osobnym pliku jego schema i nie, nie chodz mi tutaj o relacje do innego dokumentu

@Prop()
cats: [CatsSchema] powinno działać ale niestety nie działa

#nestjs #mongodb #nodejs #javascript