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

[Discussion] Consider typed ModelServerClient interface #22

Closed
martin-fleck-at opened this issue Dec 1, 2020 · 1 comment
Closed

[Discussion] Consider typed ModelServerClient interface #22

martin-fleck-at opened this issue Dec 1, 2020 · 1 comment
Assignees
Labels
question Further information is requested

Comments

@martin-fleck-at
Copy link
Contributor

I want to open the discussion whether we believe that the ModelServerClient API should be typed.

In general, the model server API is generic (mostly String values) and may support different formats (XMI, JSON, etc.). Therefore it is the responsibility of the provider to actually interpret the string that is returned from the server. The DefaultModelServerClient does not interpret any data and simply returns the String values.

However, as was raised in #20, we may want to provide an interpretation as JSON objects if the format is JSOn. This could be done through an additional implementation of the ModelServerClient interface but would require a generic parameter in that interface, similar to what is provided on the Java side, see [1] and its implementation in [2].

Any thoughts?

[1] https://github.com/eclipse-emfcloud/emfcloud-modelserver/blob/master/bundles/org.eclipse.emfcloud.modelserver.client/src/org/eclipse/emfcloud/modelserver/client/ModelServerClientApiV1.java
[2] https://github.com/eclipse-emfcloud/emfcloud-modelserver/blob/master/bundles/org.eclipse.emfcloud.modelserver.client/src/org/eclipse/emfcloud/modelserver/client/ModelServerClient.java

@martin-fleck-at martin-fleck-at added the question Further information is requested label Dec 1, 2020
tortmayr added a commit that referenced this issue Jan 5, 2022
- Move packages into dedicated `packages` dir
- Move downloading of theia plugins from root `package.json` to browser-app
- Introduce  root script for upgrading the fluent theia dependencies (`yarn ugprade:theia`)
- Upgrade effective Theia version  to 1.19.0 and swapt to ES2017 as default target.
Add mocha dependencies and add config

- Restructure repo and move packages and examples in dedicated directories
- Extract ModelServerClient from modelserver-theia into separate package
 Rework ModelServerClient API so that 
-- The API is iinline with the current Java API
-- The API returns concrete data objects instead of low level responses
-- Overrides are provided to retrieve typed results where suitable (#22)
-- The default impl uses  the well established axios  library for rest calls instead of a custom solution
-- The implementation is isomorph and can be used in both web  frontends and node backends.
-- Rework can clean up Subscriptions  API

- Provide generic mocha test setup
-  Add simple request tests for the modelserver client (using moxios)

Contributed on behalf of ST Microelectronics
tortmayr added a commit that referenced this issue Jan 5, 2022
- Move packages into dedicated `packages` dir
- Move downloading of theia plugins from root `package.json` to browser-app
- Introduce  root script for upgrading the fluent theia dependencies (`yarn ugprade:theia`)
- Upgrade effective Theia version  to 1.19.0 and swapt to ES2017 as default target.
Add mocha dependencies and add config

- Restructure repo and move packages and examples in dedicated directories
- Extract ModelServerClient from modelserver-theia into separate package
 Rework ModelServerClient API so that 
-- The API is iinline with the current Java API
-- The API returns concrete data objects instead of low level responses
-- Overrides are provided to retrieve typed results where suitable (#22)
-- The default impl uses  the well established axios  library for rest calls instead of a custom solution
-- The implementation is isomorph and can be used in both web  frontends and node backends.
-- Rework can clean up Subscriptions  API

- Provide generic mocha test setup
-  Add simple request tests for the modelserver client (using moxios)

Contributed on behalf of ST Microelectronics
tortmayr added a commit that referenced this issue Jan 5, 2022
- Move packages into dedicated `packages` dir
- Move downloading of theia plugins from root `package.json` to browser-app
- Introduce  root script for upgrading the fluent theia dependencies (`yarn ugprade:theia`)
- Upgrade effective Theia version  to 1.19.0 and swapt to ES2017 as default target.
Add mocha dependencies and add config

- Restructure repo and move packages and examples in dedicated directories
- Extract ModelServerClient from modelserver-theia into separate package
 Rework ModelServerClient API so that 
-- The API is iinline with the current Java API
-- The API returns concrete data objects instead of low level responses
-- Overrides are provided to retrieve typed results where suitable (#22)
-- The default impl uses  the well established axios  library for rest calls instead of a custom solution
-- The implementation is isomorph and can be used in both web  frontends and node backends.
-- Rework can clean up Subscriptions  API

- Provide generic mocha test setup
-  Add simple request tests for the modelserver client (using moxios)

Contributed on behalf of ST Microelectronics
ndoschek pushed a commit that referenced this issue Jan 25, 2022
* #65 Provide standalone modelserver-client 

- Move packages into dedicated `packages` dir
- Move downloading of theia plugins from root `package.json` to browser-app
- Introduce  root script for upgrading the fluent theia dependencies (`yarn ugprade:theia`)
- Upgrade effective Theia version  to 1.19.0 and swapt to ES2017 as default target.
Add mocha dependencies and add config

- Restructure repo and move packages and examples in dedicated directories
- Extract ModelServerClient from modelserver-theia into separate package
 Rework ModelServerClient API so that 
-- The API is iinline with the current Java API
-- The API returns concrete data objects instead of low level responses
-- Overrides are provided to retrieve typed results where suitable (#22)
-- The default impl uses  the well established axios  library for rest calls instead of a custom solution
-- The implementation is isomorph and can be used in both web  frontends and node backends.
-- Rework can clean up Subscriptions  API

- Provide generic mocha test setup
-  Add simple request tests for the modelserver client (using moxios)

- Use @theia/core/shared/inversify dependency where applicable
- Fix Jenkinsbuild
- Fix eslint setup
-- Align eslint dependencies so that the are compatible with the node 12 version used in Theia.

Contributed on behalf of ST Microelectronics
@ndoschek
Copy link
Contributor

Fixed with #69

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants