title: DTO not working for microservice, but working for apis directly
body: <p>I am developing apis &amp; microservices in nestJS,
  this is my controller function</p>
  
  <pre><code>    @Post()
      @MessagePattern({ service: TRANSACTION_SERVICE, msg: 'create' })
      create( @Body() createTransactionDto: TransactionDto_create ) : Promise&lt;Transaction&gt;{
          return this.transactionsService.create(createTransactionDto)
      }
  </code></pre>
  
  <p>when i call post api, dto validation works fine, but when i call this using microservice validation does not work and it passes to service without rejecting with error.
  here is my DTO</p>
  
  <pre><code>import { IsEmail, IsNotEmpty, IsString } from 'class-validator';
  export class TransactionDto_create{
      @IsNotEmpty()
      action: string;
  
      // @IsString()
      readonly rec_id : string;
  
      @IsNotEmpty()
      readonly data : Object;
  
      extras : Object;
      // readonly extras2 : Object;
  }
  </code></pre>
  
  <p>when i call api without action parameter it shows error action required but when i call this from microservice using</p>
  
  <blockquote>
    <p>const pattern = { service: TRANSACTION_SERVICE, msg: 'create' };
        const data = {id: '5d1de5d787db5151903c80b9', extras:{'asdf':'dsf'}};</p>
  
  <pre><code>return this.client.send&lt;number&gt;(pattern, data)
  </code></pre>
    
    <p>it does not throw error and goes to service.
    I have added globalpipe validation also.</p>
  </blockquote>
  
  <pre><code>app.useGlobalPipes(new ValidationPipe({
      disableErrorMessages: false,  // set true to hide detailed error message
      whitelist: false,  // set true to strip params which are not in DTO
      transform: false // set true if you want DTO to convert params to DTO class by default its false
    }));
  </code></pre>
  
  <p>how will it work for both api &amp; microservice, because i need all at one place and with same functionality so that as per clients it can be called.</p>