Comments (2)
Dear karimjouini, did you manage to find a solution for this? We have faced the same issue recently.
from swaggerwcf.
We found a workaround for it.
We used SwaggerWcfTagAttribute to give same tag for same service.
While [SwaggerWcfTag("Mercury")] is used for all operations in ServiceA.svc, [SwaggerWcfTag("Venus")] is used for the ones in ServiceB.svc, etc.
Then we created routes for each tag in Global.asax.
Finally, based on requested url, we have set hidden ones.
I mean that if request is like http://server.com/Mercury-docs, then we set Venus & Earth as hidden.
Here is the code we used in Global.asax.
public class Global : System.Web.HttpApplication
{
private static string[] SwaggerTags = new string[] { "Mercury", "Venus", "Earth" };
protected void Application_Start(object sender, EventArgs e)
{
SwaggerWcfEndpoint.FilterVisibleTags = FilterVisibleTags;
SwaggerWcfEndpoint.FilterHiddenTags = FilterHiddenTags;
SwaggerWcfEndpoint.DisableSwaggerUI = false;
RouteTable.Routes.Add(new ServiceRoute("api-docs", new WebServiceHostFactory(), typeof(SwaggerWcfEndpoint)));
foreach(string tag in SwaggerTags)
RouteTable.Routes.Add(new ServiceRoute($"{tag}-docs", new WebServiceHostFactory(), typeof(SwaggerWcfEndpoint)));
}
private static List<string> FilterVisibleTags(string path, List<string> visibleTags)
{
if (null != HttpContext.Current)
{
string urlPart = HttpContext.Current.Request.Url.AbsolutePath.ToLower();
foreach (string tag in SwaggerTags)
{
if (urlPart.Contains($"{tag.ToLower()}-docs"))
visibleTags.Add(tag);
}
}
return visibleTags;
}
private static List<string> FilterHiddenTags(string path, List<string> hiddenTags)
{
if (null != HttpContext.Current)
{
string urlPart = HttpContext.Current.Request.Url.AbsolutePath.ToLower();
foreach (string tag in SwaggerTags)
{
if (urlPart.Contains($"{tag.ToLower()}-docs"))
hiddenTags.AddRange(SwaggerTags.Where(t => !t.Equals(tag)));
}
}
return hiddenTags;
}
}
from swaggerwcf.
Related Issues (20)
- ServiceContract Attribute
- swagger.json file loses details over time HOT 1
- swaggerwcf CPU 100%
- Models NameSpaces.Class but I want just CLass HOT 3
- Request Error while access external models as parameters
- Swaggerwcf doesn't support ServiceContracts with the same methodsname.
- SwaggerWCF issue with routes and yaml HOT 1
- Adding Basic Authentication
- Adding project as a reference - failed to parse JSON/YAML response
- Unclear instuction WebServiceHost / Self Host HOT 3
- returning multiple types
- Request URL HOT 1
- URL issue
- In IIS , response body as "no centent" for swaggerWCF HOT 1
- NullReferenceException on GetEnumDescription
- Enum return value not included in definitions
- How to get Swagger json inside my API ?
- Setting an example value when there's an object on GET method
- ProcessProperty() of TypePropertiesProcessor.cs not handling IList type, Solution here.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swaggerwcf.