API

API

Webside is based on a Smalltalk system implementing the following web API.

It's worth mentioning that this API is not "pure" REST at the moment of writing this documentation. However, extending it to be a REST-full API could bring some benefits to both Webside and other potential consumers interested in inspecting or controlling a Smalltalk system through HTTP. Of course, such a change would require upgrading Webside and this documentation accordingly.

The implementation of API calls, including helper services, is centralized in a class called API.

IDs

Resources are identified by a unique ID. The production of these IDs rely on the backend implementation and may vary from dialect to dialect. The only requirement is that they should be unique. For the sake of simplicity, they will be 1, 2, etc. along this documentation.

Sections

These are the different sections of the API.

Note: URL path does not include the base URI. The base URI targeting a particular Smalltalk system will be prompted at the moment of opening Webside.

These are general endpoints that apply to the system as a whole.

These are the endpoints used to retrieve system code: packages, classes and methods.

Endpoints to apply changes and retrieve changes made to the system.

For the sake of simplicity, the API encourages the use of a single endpoint /changes for applying any change to the system. However, as this may imply to count on some implementation of refactoring changes on the backend (and might not be the case), a basic set of CRUD operations on main meta-model objects should be provided. The data required for these operations should be the same as the one provided for the corresponding changes.

Endpoints to convert changesets (chunks file) to/from changes.

Endpoints to evaluate expressions and manage active evaluations.

Endpoints to retrieve the objects in the system, either globally accessible or as the result of evaluating an expressions.

Endpoints to manage workspaces.

Endpoints to manage debuggers and interact with them.

Endpoints to run tests and retrieve their results.

Endpoints to manage profilers and access their results.

Retrieve IDE extensions defined by the backend.

Last updated