code: func WithTargetEndpoints(keys ...string) RequestOption {
  	return func(ctx context.Client, opts *requestOptions) error {
  
  		var targets []fab.Peer
  
  		for _, url := range keys {
  
  			peerCfg, err := comm.NetworkPeerConfig(ctx.EndpointConfig(), url)
  			if err != nil {
  				return err
  			}
  
  			peer, err := ctx.InfraProvider().CreatePeerFromConfig(peerCfg)
  			if err != nil {
  				return errors.WithMessage(err, "creating peer from config failed")
  			}
  
  			targets = append(targets, peer)
  		}
  
  		return WithTargets(targets...)(ctx, opts)
  	}
  }
docs: // WithTargetEndpoints allows overriding of the target peers per request.
  // Targets are specified by name or URL, and the SDK will create the underlying peer objects.