コード例 #1
0
        private JObject GetServiceDocs(RouteOptions route)
        => _memoryCache.GetOrCreate(route.SwaggerKey, (e) =>
        {
            SwaggerEndPointOptions endpoint = _swaggerEndPointRepository.GetByKey(route.SwaggerKey);
            string docs = _downstreamSwaggerDocs.GetSwaggerJsonAsync(route, endpoint).Result;
            e.SetSlidingExpiration(TimeSpan.FromMinutes(5));

            return(JObject.Parse(docs));
        });
コード例 #2
0
        private (string version, SwaggerEndPointOptions endpoint) GetEndPoint(
            string path,
            ISwaggerEndPointProvider swaggerEndPointRepository)
        {
            (string Version, string Key)endPointInfo = GetEndPointInfo(path);
            SwaggerEndPointOptions endPoint = swaggerEndPointRepository.GetByKey(endPointInfo.Key);

            return(endPointInfo.Version, endPoint);
        }
        private async static Task <RoutesDocumentationProvider> CreateProviderAsync()
        {
            IDownstreamSwaggerDocsRepository downstreamSwaggerDocs     = Substitute.For <IDownstreamSwaggerDocsRepository>();
            ISwaggerEndPointProvider         swaggerEndPointRepository = Substitute.For <ISwaggerEndPointProvider>();
            IMemoryCache memoryCache = new MemoryCache(Options.Create(new MemoryCacheOptions()));

            string json = await AssemblyHelper.GetStringFromResourceFileAsync("AggregatesOpenApiResource.json");

            downstreamSwaggerDocs.GetSwaggerJsonAsync(Arg.Any <RouteOptions>(), Arg.Any <SwaggerEndPointOptions>()).Returns(json);
            swaggerEndPointRepository.GetByKey(Arg.Any <string>()).Returns(new SwaggerEndPointOptions());

            return(new RoutesDocumentationProvider(downstreamSwaggerDocs, swaggerEndPointRepository, memoryCache));
        }