anchor.diff:      procedure (AAttr: PathAttribute)
       begin
         LPath := AAttr.Value;
  -    end);
  +    end
  +  );
     Result := LPath;
  +end;
  +
  +{ TSwaggerSchemaCompiler }
  +
  +class procedure TSwaggerSchemaCompiler.SetTypeProperties(AType: TRttiObject; AJSON: TJSONObject);
  +var
  +  LTypeKind: TTypeKind;
  +  LPTypeInfo: PTypeInfo;
  +begin
  +  LPTypeInfo := PTypeInfo(AType.Handle);
  +  LTypeKind := PTypeInfo(AType.Handle)^.Kind;
  +
  +  case LTypeKind of
  +    tkInteger, tkInt64:
  +    begin
  +      AJSON.AddPair(TJSONPair.Create('type', 'integer'));
  +    end;
  +
  +    tkClass, tkRecord:
  +    begin
  +      AJSON.AddPair(TJSONPair.Create('type', 'object'));
  +    end;
  +
  +    tkDynArray, tkArray:
  +    begin
  +      AJSON.AddPair(TJSONPair.Create('type', 'array'));
  +    end;
  +
  +    tkEnumeration:
  +    begin
  +      if (LPTypeInfo = System.TypeInfo(Boolean)) then
  +        AJSON.AddPair(TJSONPair.Create('type', 'boolean'))
  +      else
  +        AJSON.AddPair(TJSONPair.Create('type', 'string'));
  +    end;
  +
  +    tkFloat:
  +    begin
  +      if (LPTypeInfo = System.TypeInfo(TDateTime)) then
  +      begin
  +        AJSON.AddPair(TJSONPair.Create('type', 'string'));
  +        AJSON.AddPair(TJSONPair.Create('format', 'date-time'));
  +      end
  +      else if (LPTypeInfo = System.TypeInfo(TDate)) then
  +      begin
  +        AJSON.AddPair(TJSONPair.Create('type', 'string'));
  +        AJSON.AddPair(TJSONPair.Create('format', 'date'));
  +      end
  +      else if (LPTypeInfo = System.TypeInfo(TTime)) then
  +      begin
  +        AJSON.AddPair(TJSONPair.Create('type', 'string'));
  +        AJSON.AddPair(TJSONPair.Create('format', 'date-time'));
  +      end
  +      else
  +        AJSON.AddPair(TJSONPair.Create('type', 'number'));
  +    end;
  +
  +  else
  +    AJSON.AddPair(TJSONPair.Create('type', 'string'));
  +  end;
   end;
   
   initialization
     TWiRLFilterRegistry.Instance.RegisterFilter<TSwaggerFilter>;
   
  -
   end.
  
positive.code:       LParameter := CreateParameter(LRttiParameter);
        if Assigned(LParameter) then
          LParameters.Add(LParameter);
      end;  
    end;
  
    if not Assigned(LOperation.GetValue('responses')) then
  
negative.code:       Result := 'header'
      else if TRttiHelper.HasAttribute<BodyParamAttribute>(ARttiParameter) then
        Result := 'body'
      else
        Result := ''
    end;
  
    function GetParamSchema(ARttiParameter: TRttiParameter): TJSONObject;
  