Skip to content

[typescript][angular] basePath through injected config#367

Merged
wing328 merged 2 commits into
OpenAPITools:masterfrom
akehir:feature/basepath
Jul 3, 2018
Merged

[typescript][angular] basePath through injected config#367
wing328 merged 2 commits into
OpenAPITools:masterfrom
akehir:feature/basepath

Conversation

@akehir

@akehir akehir commented Jun 21, 2018

Copy link
Copy Markdown
Contributor

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: master, 3.1.x, 4.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

@macjohnny : This resolves #282 , implementing my swagger-codegen pull request on the fork.

I notice, that there are a few tests missing, notably the ones I've previously added for angular 6.

CI is here: https://travis-ci.org/akehir/openapi-generator
The original PR here: swagger-api/swagger-codegen#8305

Original description of the PR

Instead of using the this.basepath, we use this.configuration.basepath - allowing us to inject a different configuration (after loading a configuration file over http during APP_INITIALIZER).
We've been using this setup at a project for a while and it has been working well for us (different api url's in different environments, provided by the webserver on runtime).

This would close the problems discussed here: #3221 (comment) and #7949.

This the distinction to the existing PR #7965 is, that it is not required to generate / handle an observable, but rather just by changing the injected configuration, another basePath would be used. Do you think this would solve your concerns @chrismellard?

Since the rest of the swagger api client is always referring to the this.configuration.{...}, I believe this approach might be more consistent with the general handling of the configuration service.

To keep compatibility with implementations that don't inject a configuration, but just the base path, I set the base path on the internal configuration object to the injected basepath (when they don't exist).

This is the new PR for #289

@macjohnny macjohnny left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that's just awesome. This will greatly help to keep the code quality by avoiding regressions.
Looks good to me.

<argument>--progress=false</argument>
<argument>--no-watch</argument>
<argument>--browsers</argument>
<argument>ChromeHeadless</argument>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

glad it worked with ChromeHeadless

@macjohnny

Copy link
Copy Markdown
Member

@wing328 any idea where to put a note about the client/petstore/typescript-angular-v6-provided-in-root/tests/default sample project that can be used by a developer to test changes, etc.?
Should it be noted in the Readme generated?

@akehir

akehir commented Jun 21, 2018

Copy link
Copy Markdown
Contributor Author

@macjohnny : The correct place would probably be the Testing section in contributing.md: https://github.com/OpenAPITools/openapi-generator/blob/master/CONTRIBUTING.md#testing

The sample there is listing how it works for ruby, but angular is equivalent.

Run either ./bin/typescript-angular-petstore-all.sh or .\bin\windows\typescript-angular-petstore-all.bat to generate the samples.

Run either mvn verify -Psamples -fae (complete CI tasks) or mvn integration-test -Psamples -fae (to just run the tests).

Alternatively, for just angular, mvn integration-test -Psamples -rf :TypeScriptAngular6PestoreClientTests.

@akehir akehir closed this Jun 21, 2018
@akehir akehir reopened this Jun 21, 2018
@macjohnny

Copy link
Copy Markdown
Member

@akehir you are right. Would you mind updating your PR and adding it to the contributing.md file?

@wing328

wing328 commented Jun 21, 2018

Copy link
Copy Markdown
Member

@akehir you are right. Would you mind updating your PR and adding it to the contributing.md file?

Shall we document that in the wiki page instead?

If we document the test procedure for other generators in the contributing guideline, the page will become too large and likely potential contributors will just skip it.

@akehir

akehir commented Jun 22, 2018

Copy link
Copy Markdown
Contributor Author

@wing328 @macjohnny : Where's the wiki - here on github? If you point me to the correct location, I'll add the information there.

An alternative is that we create a readme.md / contributing.md within the typescript-angular template folder itself.

@macjohnny

Copy link
Copy Markdown
Member

@wing328 the wiki repository https://github.com/OpenAPITools/openapi-generator.wiki.git does not seem to be public.

@jmini

jmini commented Jun 22, 2018

Copy link
Copy Markdown
Member

@macjohnny, yes it is. To read it the URL is https://github.com/OpenAPITools/openapi-generator/wiki

To clone it the URL you have provided works:

git clone https://github.com/OpenAPITools/openapi-generator.wiki.git

(without authentication)

@macjohnny

Copy link
Copy Markdown
Member

@jmini how can you file a PR to change the wiki?

@macjohnny

Copy link
Copy Markdown
Member

@wing328 could you add this to the 3.0.3 milestone?

@wing328

wing328 commented Jun 27, 2018

Copy link
Copy Markdown
Member

cc the TS technical committee:

@TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01)

@macjohnny macjohnny left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good

@wing328

wing328 commented Jul 3, 2018

Copy link
Copy Markdown
Member

I've just restarted the CircleCI job. If it passes, I'll merge this PR into master.

@wing328 wing328 merged commit be68ef5 into OpenAPITools:master Jul 3, 2018
@akehir akehir deleted the feature/basepath branch August 28, 2018 07:19
A-Joshi pushed a commit to ihsmarkitoss/openapi-generator that referenced this pull request Feb 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[typescript-angular] service configuration/basePath modification after construction

5 participants