Konfigurace Apitte + OpenApi + OAuth2

elnathan
Člen | 11
+
0
-

Dotaz nejen na @Felix, ale kohokoli, kdo to řešil a úspěšně vyřešil:

Chci nastavit Apitte + OpenApi + OAuth2: Výsledkem bude Swagger stránka, kde si mohou nadefinovat authorizaci a posílat requesty, no prostě standardní chování. Ale chci implementovat pouze metodu ověření clientCredentials, nechci authorizationCode, implicit, password. Ač oficiální OpenApi/Swagger dokumentace nevyžaduje ty ostatní a člověk má zadat jen to co používá, Apitte to z nějakého důvodu vyžaduje všechno. Nestačí nadefinovat null, false, prázdné pole … prostě to vynucuje mít všechny plně nastavený. Přitom už jen z logiky věci, proč by někdo definoval všechny možné přístupy, vyberu si to co potřebuju a to používám = jedno.

Dá se to nějak obejít? Poprvé pracuji s Apitte na místní doporučení a jsem docela zklamán z dokumentace, ta jako by neexistovala. To co tam je totiž nepokrývá téměř žádný scénář, člověk musí dohledávat a vyzobávat data z hotového skeletonu. Ale od toho se přece dělá dokumentace, abych nemusel informace hledat v nějakém kódu aplikace. Nicméně ok, hold to tak funguje, dobře, ale toto jsem bohužel ani ve skeletonu nenašel.

Nebo jestli máte někdo kompletní ukázku celého nakonfigurování contributte/Apitte + OpenApi + contributte/OAuth2 (což bych docela očekával, jelikož to jsou dneska celkem standardy), tak by to bylo úplně skvělé, děkuji.

elnathan
Člen | 11
+
0
-

PS: zapomněl jsem hodit ukázku neonu:

api:
	plugins:
		Apitte\OpenApi\DI\OpenApiPlugin:
			definition:
				components:
					securitySchemes:
						oAuth2ClientCredentials:
							type: oauth2
							flows:
								clientCredentials:
									tokenUrl: /oauth2/token/
									scopes: {}

a v tom flows to právě vyžaduje všechny a se všema hodnotama ač dle dokumentace netřeba https://swagger.io/…tion/oauth2/

Editoval elnathan (23. 4. 11:05)

Felix
Nette Core | 1190
+
0
-

Ahoj @elnathan, dokumentace ma nekolik stranek. Koukame na tu stejnou?

Ja koukam zde: https://github.com/…master/.docs

K tvemu dotazu, tak ja treba nepouzival apitte v kombinaci s oauth2.

elnathan
Člen | 11
+
0
-

Felix napsal(a):

Ahoj @elnathan, dokumentace ma nekolik stranek. Koukame na tu stejnou?

Ja koukam zde: https://github.com/…master/.docs

K tvemu dotazu, tak ja treba nepouzival apitte v kombinaci s oauth2.

https://contributte.org/…utte/apitte/
Nevím jestli je stejná, ale přijde mi to podoné jako ten tvůj odkaz v githubu.

Ok, tys to nikdy nepropojoval. Kdo tedy ve vašem Apitte připravoval tu část OpenApi, která řeší validaci definice OAuth2 a vyžaduje nepoviné položky? Aby mě nasměroval, jak to tedy vyřešit.

Felix
Nette Core | 1190
+
0
-

Mrkni do Git historie, je mozne, ze jsem to implementoval ja, uz si nepamatuju presne. Pokud tam narazis na neco co je blbe, tak budu rad, kdyz mrknes do kodu a pomuzes to nam vsem zlepsit. Muzu te nasmerovat jak na to, jestli je potreba. :-)

elnathan
Člen | 11
+
0
-

Felix napsal(a):

Mrkni do Git historie, je mozne, ze jsem to implementoval ja, uz si nepamatuju presne. Pokud tam narazis na neco co je blbe, tak budu rad, kdyz mrknes do kodu a pomuzes to nam vsem zlepsit. Muzu te nasmerovat jak na to, jestli je potreba. :-)

No já bych to hlavně řešil jinak: Pokud si swagger definuji sám pomocí #[OpenApi('...')] nebo přímým zápisem v neon kofiguraci, tak bych to propsal 1:1 a žádnou validaci nad tím bych nedělal. Zkoušel jsem takhle nějaké deprecated nastavit a jelikož na to není obsluha, tak se to do swaggeru vůbec nepropsalo. Nevalidování by vyřešilo problémy, že když potřebuji něco extra, tak si zapíšu vždy cokoliv co potřebuji. Ale nevím zda je takové řešení za vás ok? Teoreticky by to mohl být parametr v konfiguraci = validovat openapi apod.

PS: Ještě dopním, nejde o to, že bych vytvářel nevalidní zápis, ten je správně, jen validační pravidla v knihovně neodpovídají a jinde zase ty sekce úplně chybí. Nevalidováním bych si prostě zapsal co potřebuju a dodržování validity zůstane na programátorovi, resp. případnou chybu mi pak zahlásí sám swagger po jeho spuštění.

Editoval elnathan (26. 4. 11:11)