http://www.perlmonks.org?node_id=1127774


in reply to RFC: Swagger-codegen for Perl

I am thrilled to see Swagger and Perl working together.

After the most superficial review, one thing stands out. The APIClient.mustache file uses the best-avoided Switch module.

There are a number of ways to write the code without switch. I recommend either chaining if () {} elsif () {} or using a hash as a dispatch table.

I'll try to get a more in depth look, and see if I have any other comments.


TGI says moo

Replies are listed 'Best First'.
Re^2: RFC: Swagger-codegen for Perl
by wing328 (Initiate) on May 27, 2015 at 03:01 UTC
    Thanks TGI. I'll revise the code to avoid using Switch
      Submitted https://github.com/swagger-api/swagger-codegen/pull/799 to avoid using Switch and make API client more pluggable
Re^2: RFC: Swagger-codegen for Perl
by Anonymous Monk on May 26, 2015 at 09:34 UTC
    another easy criticism, comments instead of pod
      yes, i want to use pod but didn't have cycle to do it :( if you've time, would be nice if you can submit a PR to update the comment

        yes, i want to use pod but didn't have cycle to do it :( if you've time, would be nice if you can submit a PR to update the comment

        Um, see Swagger2::POD - Convert swagger API spec to Perl documentation

        Here is more commentary

        This should not exist

        # class variables my $ua = LWP::UserAgent->new; my $http_user_agent = 'Perl-Swagger'; # HTTP user-agent my $http_timeout; #timeout my $base_url = "{{basePath}}"; sub new { my $class = shift; my %args = @_; return bless \%args, $class; } # Set the user agent of the API client # # @param string $user_agent The user agent of the API client # sub set_user_agent { my $user_agent = shift; $http_user_agent= $user_agent; }

        Don't know how critical it is to have a "set_user_agent" to maintain "Swagger" convention, but a $lwp shouldn't be a class variable, it should be an object attribute -- globals are bad mkay :)

        also, feels like too much code is being generated from templates, feels like a lot of it doesn't need to be in templates ... heard of Moose?