Swagger UI - dictionary FromQuery

0

Witam. Mam akcję która przyjmuje pewien model z polami string oraz jedno pole typu Dictionary<string,string>.

Jak zmusić swaggera ui żeby generował odpowiedni get url. czyli ?data[key1]=value1&data[key2]=value2 , ?

Chodzi o te pola w swagger UI. W przupadku pojedynczych pól string nie ma problemyu. tzn w url pojawia się ?nazwapola=wartosc.

Czyli co powinienem wpisać w Ui pod wartością do wysłania aby był odpowiedni url to zmapowania na dictionary?

0

z tego co wiem, najprościej będzie samemu napisać docsy w yamlu, bo chyba nie jest realne w auto generowanym dokumencie by wymusić dokładny typ

0

@szydlak: a ten Swagger to jak się generuje? Core ma coś wbudowanego do tego, czy przez Swashbuckle albo inną libkę?

0

No to jak Swashbuckle, to możesz nadpisać wygenerowane w schema parametry przy użyciu swojej implementacji IOperationFilter.

0

@somekind: Nie bardzo rozumiem idee nadpisywania. Zdebugowalem sobie moja implementacje IoperationFilter. No sa te parametry i w jaki sposob mialbym je nadpisac?. Nigdzie nie znalazlem jakiegos podobnego przypadku. Widzialem dodawanie tylko nowego parametru.

A tak w ogóle to dokumentacja pokazuje niby mapwanie na slownik ale jak tego uzyc?
https://swagger.io/docs/specification/data-models/dictionaries/

0

Parametry możesz zastąpić tak:

        public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
        {
            var resultParameters = new List<Parameter>();
            foreach (var op in operation.parameters)
            {
                var op = new Parameter();
                op.name = name;
                op.@in = "path";

                 resultParameters.Add(op);
            }

            operation.parameters = resultParameters;            
        }

Tzn. ja nie robię w Core, a w zwykłym frameworku jak mi czegoś brakowało (albo miałem czegoś za dużo) w Swaggerze, to implementowąłem sobie IOperationFilter, stąd moja propozycja. :)

0

No ale w jaki sposob to zastapienie parametrow rozwiaze moj problem bo jeszcze tego nie widze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1