@@ -262,7 +262,7 @@ func (e *HTTPADCExecutor) runHTTPValidateForSingleServer(ctx context.Context, se
262262 req , err = e .buildAPISIXValidateRequest (ctx , serverAddr , config , resources )
263263 httpClient = e .newBackendHTTPClient (config )
264264 } else {
265- req , err = e .buildHTTPRequest (ctx , serverAddr , config , labels , types , resources , http .MethodPost , "/sync " )
265+ req , err = e .buildHTTPRequest (ctx , serverAddr , config , labels , types , resources , http .MethodPost , "/validate " )
266266 }
267267 if err != nil {
268268 return fmt .Errorf ("failed to build validate request: %w" , err )
@@ -367,7 +367,7 @@ func buildAPISIXValidatePayload(resources *adctypes.Resources) (*apisixValidateR
367367 }
368368
369369 for _ , route := range service .Routes {
370- routeMap , err := toMap (route )
370+ routeMap , err := buildAPISIXRouteValidateObject (route )
371371 if err != nil {
372372 return nil , err
373373 }
@@ -387,7 +387,7 @@ func buildAPISIXValidatePayload(resources *adctypes.Resources) (*apisixValidateR
387387 }
388388
389389 for _ , consumer := range resources .Consumers {
390- consumerMap , err := toMap (consumer )
390+ consumerMap , err := buildAPISIXConsumerValidateObject (consumer )
391391 if err != nil {
392392 return nil , err
393393 }
@@ -405,6 +405,40 @@ func buildAPISIXValidatePayload(resources *adctypes.Resources) (*apisixValidateR
405405 return body , nil
406406}
407407
408+ func buildAPISIXRouteValidateObject (route * adctypes.Route ) (map [string ]any , error ) {
409+ routeMap , err := toMap (route )
410+ if err != nil {
411+ return nil , err
412+ }
413+
414+ delete (routeMap , "description" )
415+ return routeMap , nil
416+ }
417+
418+ func buildAPISIXConsumerValidateObject (consumer * adctypes.Consumer ) (map [string ]any , error ) {
419+ consumerMap , err := toMap (consumer )
420+ if err != nil {
421+ return nil , err
422+ }
423+
424+ if len (consumer .Credentials ) == 0 {
425+ return consumerMap , nil
426+ }
427+
428+ plugins , ok := consumerMap ["plugins" ].(map [string ]any )
429+ if ! ok || plugins == nil {
430+ plugins = make (map [string ]any , len (consumer .Credentials ))
431+ }
432+
433+ for _ , credential := range consumer .Credentials {
434+ plugins [credential .Type ] = credential .Config
435+ }
436+
437+ consumerMap ["plugins" ] = plugins
438+ delete (consumerMap , "credentials" )
439+ return consumerMap , nil
440+ }
441+
408442func buildAPISIXSSLValidateObject (ssl * adctypes.SSL ) (map [string ]any , error ) {
409443 sslMap , err := toMap (ssl )
410444 if err != nil {
0 commit comments