Leap forward in 2024

Hello there Postman team!

Just wanted to briefly explain where I see the value of Postman headed.

I’d really like to see Postman be automatic. We really should be able to use Postman products and features to do our work for us. It’s sincerely low-hanging fruit to get the most common API frameworks to integrate with Postman to inform a project’s docs and workspaces.

Based on design patterns like DTOs we should be able to somehow run a script to confirm our endpoints in Postman and gain full access to our endpoints and their props.

Honestly Postman is not very sophisticated. So I see its value being in automation. Automatic synchronized props and testing as well as sec and bug notifications.

If this ain’t the future of Postmab I’m sure I won’t be using it. If it is, well it will be all I use.

Ok, Ben name the common API framework your interested/work with day-to-day and elaborate on your workflow. Am curious.

Hey @miguel-quintero !
I use NestJS which already is rigged for what I described above.

I believe Swagger docs use this to drive auto-output.

@Controller('profiles')
@ApiTags('profile')
export class ProfileController {
  private readonly logger = new Logger(ProfileController.name);

  constructor(private readonly profileService: ProfileService) {}

  @Get(':identifier')
  @UseGuards(authenticationGuard)
  @ApiBearerAuth()
  @ApiOkResponse({ description: 'Profile retrieved successfully' })
  @ApiNotFoundResponse({ description: 'Profile not found' })
  @ApiForbiddenResponse({ description: 'Forbidden' })

This is more than you’d need to get static access to every endpoint. I know other frameworks have very similar setups without getting tricky.

It’s 2025, you are using a DTO pattern to secure your endpoints… right?

export class CreateProfileDto {
  @IsUUID('7')
  @IsOptional()
  readonly userId?: string;

  @IsUUID('7')
  @IsOptional()
  readonly organizationId?: string;

  @IsEnum(UserRolesEnum)
  readonly type: UserRolesEnum;

  @IsString()
  @IsOptional()
  @Length(4, 30, { message: 'Username must be between 4 and 30 characters' })
  @Matches(/^[a-zA-Z0-9_-]+$/, {
    message: 'Username can only contain letters, numbers, underscores, and hyphens',
  })
  readonly userName?: string; // Only used for user profiles after identity verification
}

Now we have every property for our POST endpoint, etc.