Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 2 commits into from
Jul 3, 2018

Conversation

akehir
Copy link
Contributor

@akehir akehir commented Jun 21, 2018

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

Copy link
Member

@macjohnny macjohnny left a comment

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
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
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
Copy link
Contributor Author

akehir commented Jun 21, 2018

@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
Member

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

@wing328
Copy link
Member

wing328 commented Jun 21, 2018

@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
Copy link
Contributor Author

akehir commented Jun 22, 2018

@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
Member

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

@jmini
Copy link
Member

jmini commented Jun 22, 2018

@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
Member

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

@macjohnny
Copy link
Member

@wing328 could you add this to the 3.0.3 milestone?

@wing328
Copy link
Member

wing328 commented Jun 27, 2018

cc the TS technical committee:

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

Copy link
Member

@macjohnny macjohnny left a comment

Choose a reason for hiding this comment

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

looks good

@wing328
Copy link
Member

wing328 commented Jul 3, 2018

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