github.com/polarismesh/polaris@v1.17.8/apiserver/httpserver/docs/naming_console_access_apidoc.go (about) 1 /** 2 * Tencent is pleased to support the open source community by making Polaris available. 3 * 4 * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. 5 * 6 * Licensed under the BSD 3-Clause License (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * https://opensource.org/licenses/BSD-3-Clause 11 * 12 * Unless required by applicable law or agreed to in writing, software distributed 13 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 14 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 * specific language governing permissions and limitations under the License. 16 */ 17 18 package docs 19 20 import ( 21 "github.com/emicklei/go-restful/v3" 22 restfulspec "github.com/polarismesh/go-restful-openapi/v2" 23 "github.com/polarismesh/specification/source/go/api/v1/fault_tolerance" 24 apifault "github.com/polarismesh/specification/source/go/api/v1/fault_tolerance" 25 apimodel "github.com/polarismesh/specification/source/go/api/v1/model" 26 "github.com/polarismesh/specification/source/go/api/v1/service_manage" 27 apiservice "github.com/polarismesh/specification/source/go/api/v1/service_manage" 28 "github.com/polarismesh/specification/source/go/api/v1/traffic_manage" 29 apitraffic "github.com/polarismesh/specification/source/go/api/v1/traffic_manage" 30 ) 31 32 var ( 33 namespacesApiTags = []string{"Namespaces"} 34 servicesApiTags = []string{"Services"} 35 instancesApiTags = []string{"Instances"} 36 routingRulesApiTags = []string{"RoutingRules"} 37 rateLimitsApiTags = []string{"RateLimits"} 38 circuitBreakersApiTags = []string{"CircuitBreakers"} 39 circuitBreakerRulesApiTags = []string{"CircuitBreakerRules"} 40 faultDetectsApiTags = []string{"FaultDetects"} 41 ) 42 43 const ( 44 typeNameString = "string" 45 typeNameInteger = "integer" 46 typeNameBool = "boolean" 47 ) 48 49 func EnrichGetNamespacesApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder { 50 return r.Doc("获取命名空间列表(Old)"). 51 Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags). 52 Param(restful.QueryParameter("name", "命名空间唯一名称"). 53 DataType(typeNameString).Required(true)). 54 Param(restful.QueryParameter("offset", "查询偏移量"). 55 DataType(typeNameInteger).Required(false).DefaultValue("0")). 56 Param(restful.QueryParameter("limit", "查询条数,**最多查询100条**"). 57 DataType(typeNameInteger).Required(false)). 58 Returns(0, "", struct { 59 BatchQueryResponse 60 Namespaces []apimodel.Namespace `json:"namespaces"` 61 }{}) 62 } 63 64 func EnrichCreateNamespacesApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder { 65 return r. 66 Doc("创建命名空间(Old)"). 67 Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags). 68 Reads([]apimodel.Namespace{}, "create namespaces"). 69 Returns(0, "", struct { 70 BatchWriteResponse 71 Responses []struct { 72 BaseResponse 73 Namespace apimodel.Namespace `json:"namespace"` 74 } `json:"responses"` 75 }{}) 76 } 77 78 func EnrichDeleteNamespacesApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder { 79 return r. 80 Doc("删除命名空间(Old)"). 81 Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags). 82 Reads([]apimodel.Namespace{}, "delete namespaces"). 83 Returns(0, "", struct { 84 BatchWriteResponse 85 Responses []struct { 86 BaseResponse 87 Namespace apimodel.Namespace `json:"namespace"` 88 } `json:"responses"` 89 }{}) 90 } 91 92 func EnrichUpdateNamespacesApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder { 93 return r. 94 Doc("更新命名空间(Old)"). 95 Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags). 96 Reads([]apimodel.Namespace{}, "update namespaces"). 97 Returns(0, "", struct { 98 BatchWriteResponse 99 Responses []struct { 100 BaseResponse 101 Namespace apimodel.Namespace `json:"namespace"` 102 } `json:"responses"` 103 }{}) 104 } 105 106 func EnrichGetNamespaceTokenApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder { 107 return r. 108 Doc("查询命名空间Token(Old)"). 109 Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags).Deprecate() 110 } 111 112 func EnrichUpdateNamespaceTokenApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder { 113 return r. 114 Doc("更新命名空间Token(Old)"). 115 Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags).Deprecate() 116 } 117 118 func EnrichGetAllServicesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 119 return r.Doc("获取全部服务列表"). 120 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags). 121 Param(restful.QueryParameter("namespace", "命名空间").DataType(typeNameString). 122 Required(false)). 123 Returns(0, "", struct { 124 BatchQueryResponse 125 Services []service_manage.Service `json:"services"` 126 }{}) 127 } 128 129 func EnrichGetServicesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 130 return r.Doc("获取服务列表"). 131 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags). 132 Param(restful.QueryParameter("name", "服务名, 前缀查询: name*; 后缀查询: *name; 全模糊查询: *name*"). 133 DataType(typeNameString). 134 Required(false). 135 DefaultValue("demo-service")). 136 Param(restful.QueryParameter("namespace", "命名空间, 前缀查询: name*; 后缀查询: *name; 全模糊查询: *name*"). 137 DataType(typeNameString). 138 Required(false). 139 DefaultValue("default")). 140 Param(restful.QueryParameter("business", "业务,默认模糊查询").DataType(typeNameString). 141 Required(false)). 142 Param(restful.QueryParameter("department", "部门").DataType(typeNameString). 143 Required(false)). 144 Param(restful.QueryParameter("host", "实例IP,**多个IP以英文逗号分隔**"). 145 DataType(typeNameString).Required(false)). 146 Param(restful.QueryParameter("port", "**实例端口**,**多个端口以英文逗号分隔** "). 147 DataType(typeNameString).Required(false)). 148 Param(restful.QueryParameter("keys", "服务元数据名,keys和values需要同时填写,"+ 149 "目前只支持查询一组元数据。").DataType(typeNameString).Required(false)). 150 Param(restful.QueryParameter("values", "服务元数据名,keys和values需要同时填写,"+ 151 "目前只支持查询一组元数据。").DataType(typeNameString).Required(false)). 152 Param(restful.QueryParameter("instance_keys", "实例标签key, key-1,key-2, instance_keys 和 "+ 153 " instance_values 需要同时填写且必须元素个数一致").DataType(typeNameString). 154 Required(false).DefaultValue("")). 155 Param(restful.QueryParameter("instance_values", "实例标签value, value-1,value-2, instance_keys "+ 156 " 和 instance_values 需要同时填写且必须元素个数一致"). 157 DataType(typeNameString). 158 Required(false)). 159 Param(restful.QueryParameter("offset", "查询偏移量").DataType(typeNameInteger). 160 Required(false).DefaultValue("0")). 161 Param(restful.QueryParameter("limit", "查询条数,**最多查询100条**").DataType(typeNameInteger). 162 Required(false)). 163 Returns(0, "", struct { 164 BatchQueryResponse 165 Services []service_manage.Service `json:"services"` 166 }{}) 167 } 168 169 func EnrichCreateServicesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 170 return r. 171 Doc("创建服务"). 172 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags). 173 Reads([]apiservice.Service{}, "create services"). 174 Returns(0, "", struct { 175 BatchWriteResponse 176 Responses []struct { 177 BaseResponse 178 Service service_manage.Service `json:"service"` 179 } `json:"responses"` 180 }{}) 181 } 182 183 func EnrichDeleteServicesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 184 return r. 185 Doc("删除服务"). 186 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags). 187 Reads([]apiservice.Service{}, "delete services"). 188 Returns(0, "", struct { 189 BatchWriteResponse 190 Responses []struct { 191 BaseResponse 192 Service service_manage.Service `json:"service"` 193 } `json:"responses"` 194 }{}) 195 } 196 197 func EnrichUpdateServicesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 198 return r. 199 Doc("更新服务"). 200 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags). 201 Reads([]apiservice.Service{}, "update services"). 202 Returns(0, "", struct { 203 BatchWriteResponse 204 Responses []struct { 205 BaseResponse 206 Service service_manage.Service `json:"service"` 207 } `json:"responses"` 208 }{}) 209 } 210 211 func EnrichGetServicesCountApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 212 return r. 213 Doc("获取服务数量"). 214 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags). 215 Returns(0, "", BatchQueryResponse{}) 216 } 217 218 func EnrichGetServiceTokenApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 219 return r. 220 Doc("查询服务Token"). 221 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).Deprecate() 222 } 223 224 func EnrichUpdateServiceTokenApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 225 return r.Doc("更新服务Token"). 226 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).Deprecate() 227 } 228 229 func EnrichCreateServiceAliasApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 230 return r.Doc("创建服务别名"). 231 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags). 232 Reads(apiservice.ServiceAlias{}, "create service alias"). 233 Returns(0, "", BaseResponse{}) 234 } 235 236 func EnrichUpdateServiceAliasApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 237 return r.Doc("更新服务别名"). 238 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags). 239 Reads(apiservice.ServiceAlias{}, "update service alias"). 240 Returns(0, "", BaseResponse{}) 241 } 242 243 func EnrichGetServiceAliasesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 244 return r.Doc("查询服务别名"). 245 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags). 246 Param(restful.QueryParameter("alias", "服务别名"). 247 DataType(typeNameString).Required(false).DefaultValue("demo-service")). 248 Param(restful.QueryParameter("alias_namespace", "服务别名命名空间"). 249 DataType(typeNameString).Required(false).DefaultValue("demo-service")). 250 Param(restful.QueryParameter("service", "原服务名"). 251 DataType(typeNameString).Required(false).DefaultValue("demo-service")). 252 Param(restful.QueryParameter("namespace", "原服务命名空间"). 253 DataType(typeNameString).Required(false).DefaultValue("demo-service")). 254 Param(restful.QueryParameter("offset", "查询偏移量").DataType(typeNameInteger). 255 Required(false).DefaultValue("0")). 256 Param(restful.QueryParameter("limit", "查询条数,**最多查询100条**").DataType(typeNameInteger). 257 Required(false)). 258 Returns(0, "", struct { 259 BatchQueryResponse 260 Services []service_manage.Service `json:"services"` 261 }{}) 262 } 263 264 func EnrichDeleteServiceAliasesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 265 return r.Doc("删除服务别名"). 266 Metadata(restfulspec.KeyOpenAPITags, servicesApiTags). 267 Reads([]apiservice.ServiceAlias{}, "delete service aliases"). 268 Returns(0, "", BaseResponse{}) 269 } 270 271 func EnrichCreateInstancesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 272 return r.Doc("创建实例"). 273 Metadata(restfulspec.KeyOpenAPITags, instancesApiTags). 274 Reads([]apiservice.Instance{}, "create instances"). 275 Returns(0, "", struct { 276 BatchWriteResponse 277 Responses []struct { 278 BaseResponse 279 Instance service_manage.Instance `json:"instance"` 280 } `json:"responses"` 281 }{}) 282 } 283 284 func EnrichDeleteInstancesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 285 return r.Doc("删除实例(根据实例ID)"). 286 Metadata(restfulspec.KeyOpenAPITags, instancesApiTags). 287 Reads([]apiservice.Instance{}, "delete instances"). 288 Returns(0, "", struct { 289 BatchWriteResponse 290 Responses []struct { 291 BaseResponse 292 Instance service_manage.Instance `json:"instance"` 293 } `json:"responses"` 294 }{}) 295 } 296 297 func EnrichDeleteInstancesByHostApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 298 return r.Doc("删除实例(根据主机)"). 299 Metadata(restfulspec.KeyOpenAPITags, instancesApiTags). 300 Reads([]apiservice.Instance{}, "delete instances"). 301 Returns(0, "", struct { 302 BatchWriteResponse 303 Responses []struct { 304 BaseResponse 305 Instance service_manage.Instance `json:"instance"` 306 } `json:"responses"` 307 }{}) 308 } 309 310 func EnrichUpdateInstancesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 311 return r.Doc("更新实例"). 312 Metadata(restfulspec.KeyOpenAPITags, instancesApiTags). 313 Reads([]apiservice.Instance{}, "update instances"). 314 Returns(0, "", struct { 315 BatchWriteResponse 316 Responses []struct { 317 BaseResponse 318 Instance service_manage.Instance `json:"instance"` 319 } `json:"responses"` 320 }{}) 321 } 322 323 func EnrichUpdateInstancesIsolateApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 324 return r.Doc("修改服务实例的隔离状态"). 325 Metadata(restfulspec.KeyOpenAPITags, instancesApiTags). 326 Reads([]apiservice.Instance{}, "update instances"). 327 Returns(0, "", struct { 328 BatchWriteResponse 329 Responses []struct { 330 BaseResponse 331 Instance service_manage.Instance `json:"instance"` 332 } `json:"responses"` 333 }{}) 334 } 335 336 func EnrichGetInstancesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 337 return r.Doc("查询服务实例"). 338 Metadata(restfulspec.KeyOpenAPITags, instancesApiTags). 339 Param(restful.PathParameter("id", "实例ID"). 340 DataType(typeNameString).Required(false)). 341 Param(restful.QueryParameter("service", "service namespace host 三个必须最少传一个, "+ 342 " 前缀查询: name*; 后缀查询: *name; 全模糊查询: *name*"). 343 DataType(typeNameString).Required(false)). 344 Param(restful.QueryParameter("namespace", "service namespace host 三个必须最少传一个, "+ 345 " 前缀查询: name*; 后缀查询: *name; 全模糊查询: *name*"). 346 DataType(typeNameString).Required(false)). 347 Param(restful.QueryParameter("host", "service namespace host 三个必须最少传一个"). 348 DataType(typeNameString).Required(false)). 349 Param(restful.PathParameter("keys", "标签key"). 350 DataType(typeNameString).Required(false)). 351 Param(restful.PathParameter("values", "标签value"). 352 DataType(typeNameString).Required(false)). 353 Param(restful.PathParameter("healthy", "实例健康状态"). 354 DataType(typeNameString).Required(false)). 355 Param(restful.PathParameter("isolate", "实例隔离状态"). 356 DataType(typeNameString).Required(false)). 357 Param(restful.PathParameter("protocol", "实例端口协议状态"). 358 DataType(typeNameString).Required(false)). 359 Param(restful.PathParameter("version", "实例版本"). 360 DataType(typeNameString).Required(false)). 361 Param(restful.PathParameter("cmdb_region", "实例region信息"). 362 DataType(typeNameString).Required(false)). 363 Param(restful.PathParameter("cmdb_zone", "实例zone信息"). 364 DataType(typeNameString).Required(false)). 365 Param(restful.PathParameter("cmdb_idc", "实例idc信息"). 366 DataType(typeNameString).Required(false)). 367 Param(restful.PathParameter("offset", "查询偏移量"). 368 DataType(typeNameInteger).Required(false)). 369 Param(restful.PathParameter("limit", "查询条数"). 370 DataType(typeNameInteger).Required(false)). 371 Returns(0, "", struct { 372 BatchQueryResponse 373 Instances []service_manage.Instance `json:"instances"` 374 }{}) 375 } 376 377 func EnrichGetInstancesCountApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 378 return r.Doc("查询服务实例数量"). 379 Metadata(restfulspec.KeyOpenAPITags, instancesApiTags). 380 Returns(0, "", BatchQueryResponse{}) 381 } 382 383 func EnrichGetInstanceLabelsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 384 return r.Doc("查询某个服务下所有实例的标签信息"). 385 Metadata(restfulspec.KeyOpenAPITags, instancesApiTags). 386 Param(restful.QueryParameter("service", "服务名称"). 387 DataType(typeNameString).Required(true)). 388 Param(restful.QueryParameter("namespace", "命名空间"). 389 DataType(typeNameString).Required(true)). 390 Returns(0, "", struct { 391 BaseResponse 392 InstanceLabels service_manage.InstanceLabels `json:"instanceLabels,omitempty"` 393 }{}) 394 } 395 396 func EnrichCreateRateLimitsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 397 return r.Doc("创建限流规则"). 398 Metadata(restfulspec.KeyOpenAPITags, rateLimitsApiTags). 399 Reads([]apitraffic.Rule{}, "create rate limits"). 400 Returns(0, "", struct { 401 BatchWriteResponse 402 Responses []struct { 403 BaseResponse 404 } `json:"responses"` 405 }{}) 406 } 407 408 func EnrichDeleteRateLimitsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 409 return r.Doc("删除限流规则"). 410 Metadata(restfulspec.KeyOpenAPITags, rateLimitsApiTags). 411 Reads([]apitraffic.Rule{}, "delete rate limits"). 412 Returns(0, "", struct { 413 BatchWriteResponse 414 Responses []struct { 415 BaseResponse 416 } `json:"responses"` 417 }{}) 418 } 419 420 func EnrichUpdateRateLimitsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 421 return r.Doc("更新限流规则"). 422 Metadata(restfulspec.KeyOpenAPITags, rateLimitsApiTags). 423 Reads([]apitraffic.Rule{}, "update rate limits"). 424 Returns(0, "", struct { 425 BatchWriteResponse 426 Responses []struct { 427 BaseResponse 428 } `json:"responses"` 429 }{}) 430 } 431 432 func EnrichGetRateLimitsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 433 return r.Doc("查询限流规则"). 434 Metadata(restfulspec.KeyOpenAPITags, rateLimitsApiTags). 435 Param(restful.PathParameter("id", "规则ID"). 436 DataType(typeNameString).Required(false)). 437 Param(restful.PathParameter("name", "规则名称"). 438 DataType(typeNameString).Required(false)). 439 Param(restful.PathParameter("service", "服务名称"). 440 DataType(typeNameString).Required(false)). 441 Param(restful.PathParameter("namespace", "命名空间"). 442 DataType(typeNameString).Required(false)). 443 Param(restful.PathParameter("method", "限流接口名,默认为模糊匹配 "). 444 DataType(typeNameString).Required(false)). 445 Param(restful.PathParameter("disable", "规则是否启用,true为不启用,false为启用"). 446 DataType(typeNameBool).Required(false)). 447 Param(restful.PathParameter("brief", 448 "是否只显示概要信息,brief=true时,只返回规则列表概要信息,默认为false"). 449 DataType("boolean").Required(false).DefaultValue("false")). 450 Param(restful.PathParameter("offset", "分页的起始位置,默认为0").DataType(typeNameInteger). 451 Required(false).DefaultValue("0")). 452 Param(restful.PathParameter("limit", "每页行数,默认100 ").DataType(typeNameInteger). 453 Required(false).DefaultValue("100")). 454 Returns(0, "", struct { 455 BatchQueryResponse 456 RateLimits []traffic_manage.Rule `json:"rateLimits,omitempty"` 457 }{}) 458 } 459 460 func EnrichEnableRateLimitsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 461 return r.Doc("启用限流规则"). 462 Metadata(restfulspec.KeyOpenAPITags, rateLimitsApiTags). 463 Reads([]apitraffic.Rule{}, "enable rate limits"). 464 Returns(0, "", struct { 465 BatchWriteResponse 466 Responses []struct { 467 BaseResponse 468 } `json:"responses"` 469 }{}) 470 } 471 472 func EnrichCreateCircuitBreakerRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 473 return r.Doc("创建熔断规则"). 474 Metadata(restfulspec.KeyOpenAPITags, circuitBreakersApiTags). 475 Reads([]apifault.CircuitBreakerRule{}, "create circuitbreaker rules"). 476 Returns(0, "", struct { 477 BatchWriteResponse 478 Responses []struct { 479 BaseResponse 480 } `json:"responses"` 481 }{}) 482 } 483 484 func EnrichDeleteCircuitBreakerRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 485 return r.Doc("删除熔断规则"). 486 Metadata(restfulspec.KeyOpenAPITags, circuitBreakersApiTags). 487 Reads([]apifault.CircuitBreakerRule{}, "delete circuitbreaker rules"). 488 Returns(0, "", struct { 489 BatchWriteResponse 490 Responses []struct { 491 BaseResponse 492 } `json:"responses"` 493 }{}) 494 } 495 496 func EnrichUpdateCircuitBreakerRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 497 return r.Doc("更新熔断规则"). 498 Metadata(restfulspec.KeyOpenAPITags, circuitBreakersApiTags). 499 Reads([]apifault.CircuitBreakerRule{}, "update circuitbreaker rules"). 500 Returns(0, "", struct { 501 BatchWriteResponse 502 Responses []struct { 503 BaseResponse 504 } `json:"responses"` 505 }{}) 506 } 507 508 func EnrichGetCircuitBreakerRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 509 return r.Doc("查询熔断规则"). 510 Metadata(restfulspec.KeyOpenAPITags, circuitBreakersApiTags). 511 Param(restful.PathParameter("brief", "是否只显示概要信息,brief=true时,则不返回规则详情,"+ 512 "只返回规则列表概要信息,默认为false").DataType(typeNameBool). 513 Required(false).DefaultValue("false")). 514 Param(restful.PathParameter("offset", "分页的起始位置,默认为0").DataType(typeNameInteger). 515 Required(false).DefaultValue("0")). 516 Param(restful.PathParameter("limit", "每页行数,默认100 ").DataType(typeNameInteger). 517 Required(false).DefaultValue("100")). 518 Param(restful.PathParameter("id", "规则ID").DataType(typeNameString). 519 Required(false)). 520 Param(restful.PathParameter("name", "规则名称").DataType(typeNameString). 521 Required(false)). 522 Param(restful.PathParameter("enable", "规则是否启用,true为启用,false为不启用"). 523 DataType("boolean").Required(false)). 524 Param(restful.PathParameter("namespace", "命名空间").DataType(typeNameString). 525 Required(false)). 526 Param(restful.PathParameter("level", "熔断级别,可输入多个,逗号分割:1服务,2接口,3分组,4实例"). 527 DataType(typeNameString).Required(true)). 528 Param(restful.PathParameter("service", "规则所关联服务,必须和serviceNamespace一起用"). 529 DataType(typeNameString).Required(true)). 530 Param(restful.PathParameter("serviceNamespace", "规则所关联服务的命名空间,必须和service一起用"). 531 DataType(typeNameString).Required(true)). 532 Param(restful.PathParameter("srcService", "规则的源服务名,模糊匹配"). 533 DataType(typeNameString).Required(true)). 534 Param(restful.PathParameter("srcNamespace", "规则的源命名空间,模糊匹配"). 535 DataType(typeNameString).Required(true)). 536 Param(restful.PathParameter("dstService", "规则的目标服务名,模糊匹配"). 537 DataType(typeNameString).Required(true)). 538 Param(restful.PathParameter("dstNamespace", "规则的目标命名空间,模糊匹配"). 539 DataType(typeNameString).Required(true)). 540 Param(restful.PathParameter("dstMethod", "规则的目标方法名,模糊匹配"). 541 DataType(typeNameString).Required(true)). 542 Param(restful.PathParameter("description", "规则描述,模糊匹配"). 543 DataType(typeNameString).Required(true)). 544 Returns(0, "", struct { 545 BatchQueryResponse 546 Data []fault_tolerance.CircuitBreakerRule `json:"data"` 547 }{}) 548 } 549 550 func EnrichEnableCircuitBreakerRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 551 return r.Doc("启用熔断规则"). 552 Metadata(restfulspec.KeyOpenAPITags, circuitBreakersApiTags). 553 Reads([]fault_tolerance.CircuitBreakerRule{}, "enable circuitbreaker rule"). 554 Returns(0, "", struct { 555 BatchWriteResponse 556 Responses []struct { 557 BaseResponse 558 } `json:"responses"` 559 }{}) 560 } 561 562 func EnrichCreateFaultDetectRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 563 return r.Doc("创建主动探测规则"). 564 Metadata(restfulspec.KeyOpenAPITags, faultDetectsApiTags). 565 Reads([]apifault.FaultDetectRule{}, "create fault detect rules"). 566 Returns(0, "", struct { 567 BatchWriteResponse 568 Responses []struct { 569 BaseResponse 570 } `json:"responses"` 571 }{}) 572 } 573 574 func EnrichDeleteFaultDetectRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 575 return r.Doc("删除主动探测规则"). 576 Metadata(restfulspec.KeyOpenAPITags, faultDetectsApiTags). 577 Reads([]apifault.FaultDetectRule{}, "delete fault detect rules"). 578 Returns(0, "", struct { 579 BatchWriteResponse 580 Responses []struct { 581 BaseResponse 582 } `json:"responses"` 583 }{}) 584 } 585 586 func EnrichUpdateFaultDetectRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 587 return r.Doc("更新主动探测规则"). 588 Metadata(restfulspec.KeyOpenAPITags, faultDetectsApiTags). 589 Reads([]apifault.FaultDetectRule{}, "update fault detect rules"). 590 Returns(0, "", struct { 591 BatchWriteResponse 592 Responses []struct { 593 BaseResponse 594 } `json:"responses"` 595 }{}) 596 } 597 598 func EnrichGetFaultDetectRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 599 return r.Doc("查询主动探测规则"). 600 Metadata(restfulspec.KeyOpenAPITags, faultDetectsApiTags). 601 Param(restful.PathParameter("brief", "是否只显示概要信息,brief=true时,"+ 602 "则不返回规则详情,只返回规则列表概要信息,默认为false").DataType(typeNameBool). 603 Required(false).DefaultValue("false")). 604 Param(restful.PathParameter("offset", "分页的起始位置,默认为0").DataType(typeNameInteger). 605 Required(false).DefaultValue("0")). 606 Param(restful.PathParameter("limit", "每页行数,默认100 ").DataType(typeNameInteger). 607 Required(false).DefaultValue("100")). 608 Param(restful.PathParameter("id", "规则ID").DataType(typeNameString). 609 Required(false)). 610 Param(restful.PathParameter("name", "规则名称").DataType(typeNameString). 611 Required(false)). 612 Param(restful.PathParameter("enable", "规则是否启用,true为启用,false为不启用"). 613 DataType("boolean").Required(false)). 614 Param(restful.PathParameter("namespace", "命名空间").DataType(typeNameString). 615 Required(false)). 616 Param(restful.PathParameter("service", "规则所关联服务,必须和serviceNamespace一起用"). 617 DataType(typeNameString).Required(true)). 618 Param(restful.PathParameter("serviceNamespace", "规则所关联服务的命名空间,必须和service一起用"). 619 DataType(typeNameString).Required(true)). 620 Param(restful.PathParameter("dstService", "规则的目标服务名,模糊匹配"). 621 DataType(typeNameString).Required(true)). 622 Param(restful.PathParameter("dstNamespace", "规则的目标命名空间,模糊匹配"). 623 DataType(typeNameString).Required(true)). 624 Param(restful.PathParameter("dstMethod", "规则的目标方法名,模糊匹配"). 625 DataType(typeNameString).Required(true)). 626 Param(restful.PathParameter("description", "规则描述,模糊匹配"). 627 DataType(typeNameString).Required(true)). 628 Returns(0, "", struct { 629 BatchQueryResponse 630 Data []fault_tolerance.FaultDetectConfig `json:"data"` 631 }{}) 632 } 633 634 func EnrichCreateRouterRuleApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 635 return r.Doc("创建路由规则(V2)"). 636 Metadata(restfulspec.KeyOpenAPITags, routingRulesApiTags). 637 Operation("v2CreateRoutings"). 638 Reads([]RouteRule{}, ` 639 SourceMatch.Type: CUSTOM/METHOD/HEADER/QUERY/CALLER_IP/PATH/COOKIE 640 SourceMatch.Value.Type: EXACT/REGEX/NOT_EQUALS/IN/NOT_IN/RANGE 641 SourceMatch.Value.ValueType: TEXT/PARAMETER 642 SourceMatch.Type: CUSTOM/METHOD/HEADER/QUERY/CALLER_IP/PATH/COOKIE 643 SourceMatch.Value.Type: EXACT/REGEX/NOT_EQUALS/IN/NOT_IN/RANGE 644 DestinationGroup.Labels.Value.Typee: EXACT/REGEX/NOT_EQUALS/IN/NOT_IN/RANGE 645 DestinationGroup.Labels.Value.ValueType: TEXT/PARAMETER 646 `). 647 Returns(0, "", struct { 648 BatchWriteResponse 649 Responses []struct { 650 BaseResponse 651 } `json:"responses"` 652 }{}) 653 } 654 655 func EnrichDeleteRouterRuleApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 656 return r.Doc("删除路由规则(V2)"). 657 Metadata(restfulspec.KeyOpenAPITags, routingRulesApiTags). 658 Operation("v2DeleteRoutings"). 659 Reads([]RouteRule{}). 660 Returns(0, "", struct { 661 BatchWriteResponse 662 Responses []struct { 663 BaseResponse 664 } `json:"responses"` 665 }{}) 666 } 667 668 func EnrichUpdateRouterRuleApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 669 return r.Doc("更新路由规则(V2)"). 670 Metadata(restfulspec.KeyOpenAPITags, routingRulesApiTags). 671 Operation("v2UpdateRoutings"). 672 Reads([]RouteRule{}). 673 Returns(0, "", struct { 674 BatchWriteResponse 675 Responses []struct { 676 BaseResponse 677 } `json:"responses"` 678 }{}) 679 } 680 681 func EnrichGetRouterRuleApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 682 return r.Doc("获取路由规则(V2)"). 683 Metadata(restfulspec.KeyOpenAPITags, routingRulesApiTags). 684 Param(restful.PathParameter("id", "规则ID").DataType(typeNameString). 685 Required(false)). 686 Param(restful.PathParameter("name", "规则名称").DataType(typeNameString). 687 Required(false)). 688 Param(restful.PathParameter("service", "服务名称,匹配 source 或者 destination").DataType(typeNameString). 689 Required(false)). 690 Param(restful.PathParameter("namespace", "命名空间,匹配 source 或者 destination").DataType(typeNameString). 691 Required(false)). 692 Param(restful.PathParameter("source_service", "服务名称,只匹配 source").DataType(typeNameString). 693 Required(false)). 694 Param(restful.PathParameter("source_namespace", "命名空间,只匹配 source").DataType(typeNameString). 695 Required(false)). 696 Param(restful.PathParameter("destination_service", "服务名称,只匹配 destination").DataType(typeNameString). 697 Required(false)). 698 Param(restful.PathParameter("destination_namespace", "命名空间,只匹配 destination").DataType(typeNameString). 699 Required(false)). 700 Param(restful.PathParameter("enable", "查询符合对应启用状态").DataType(typeNameBool). 701 Required(false)). 702 Param(restful.PathParameter("offset", "分页的起始位置,默认为0").DataType(typeNameInteger). 703 Required(false). 704 DefaultValue("0")). 705 Param(restful.PathParameter("limit", "每页行数,默认100").DataType(typeNameInteger). 706 Required(false). 707 DefaultValue("100")). 708 Operation("v2GetRoutings"). 709 Returns(0, "", struct { 710 BatchQueryResponse 711 Data []RouteRule `json:"data"` 712 }{}) 713 } 714 715 func EnrichEnableRouterRuleApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 716 return r.Doc("启用路由规则(V2)"). 717 Metadata(restfulspec.KeyOpenAPITags, routingRulesApiTags). 718 Reads([]RouteRule{}). 719 Operation("v2EnableRoutings"). 720 Returns(0, "", struct { 721 BatchWriteResponse 722 Responses []struct { 723 BaseResponse 724 } `json:"responses"` 725 }{}) 726 }