> For the complete documentation index, see [llms.txt](https://webside.gitbook.io/webside/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://webside.gitbook.io/webside/api/code.md).

# Code

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

It is important to mention that the JSON objects returned by these endpoints should include common properties of every `object`. This is used by Webside IDE to provide inspection services over objects of the meta-model (classes, methods, etc.). These are the common properties at the moment:

```json
{
  "class": "string",
  "hasNamedSlots": "boolean",
  "hasIndexedSlots": "boolean",
  "size": "number",
  "printString": "string"
}
```

## Endpoints

| Method | Path                                                                                             | Description                                                                                                                                                                                                             |                                                                                      Parameters                                                                                     | Payload |
| :----: | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------- |
|   GET  | [/methods](/webside/api/code/methods/get.md)                                                     | Retrieve methods satisfying the condition specified in the query (or all the methods in the system if no condition is provided)                                                                                         | `selector`, `category`, `accessing`, `using`, `assigning`, `sending`, `referencingClass`, `selectorMatching`, `ast`, `annotations`, `bytecodes`, `dissasembly`, `count`, `modified` | -       |
|   GET  | [/classes](/webside/api/code/classes/get.md)                                                     | Retrieve all subclasses of a given root class (if no root is provided, the uppermost class in the system is used). It is also possible get a tree-like structure as well as to limit the depth in the classes hierarchy |                                                                     `root`, `names`, `tree`, `depth`, `category`                                                                    | -       |
|   GET  | [/classes/{name}](/webside/api/code/classes/get-1.md)                                            | Retrieve a given class                                                                                                                                                                                                  |                                                                                          -                                                                                          | -       |
|   GET  | [/classes/{name}/superclasses](/webside/api/code/classes/get-11.md)                              | Retrieve superclasses a given class                                                                                                                                                                                     |                                                                                          -                                                                                          | -       |
|   GET  | [/classes/{name}/subclasses](/webside/api/code/classes/get-10.md)                                | Retrieve subclasses a given class                                                                                                                                                                                       |                                                                                          -                                                                                          | -       |
|   GET  | [/classes/{name}/variables](/webside/api/code/classes/get-3.md)                                  | Retrieve instance and class variables of a given class                                                                                                                                                                  |                                                                                          -                                                                                          | -       |
|   GET  | [/classes/{name}/instance-variables](/webside/api/code/classes/get-5.md)                         | Retrieve instance variables of a given class                                                                                                                                                                            |                                                                                          -                                                                                          | -       |
|   GET  | [/classes/{name}/class-variables](/webside/api/code/classes/get-4.md)                            | Retrieve class variables of a given class                                                                                                                                                                               |                                                                                          -                                                                                          | -       |
|   GET  | [/classes/{name}/categories](/webside/api/code/classes/get-2.md)                                 | Retrieve categories of a given class                                                                                                                                                                                    |                                                                                          -                                                                                          | -       |
|   GET  | [/classes/{name}/used-categories](/webside/api/code/classes/get-12.md)                           | Retrieve categories used throughout the hierarchy of a given class                                                                                                                                                      |                                                                                          -                                                                                          | -       |
|   GET  | [/classes/{name}/methods](/webside/api/code/classes/get-7.md)                                    | Retrieve methods of a given class                                                                                                                                                                                       |                                                                                          -                                                                                          | -       |
|   GET  | [/classes/{name}/selectors](/webside/api/code/classes/get-6.md)                                  | Retrieve selectors of a given class                                                                                                                                                                                     |                                                                                          -                                                                                          | -       |
|   GET  | [/classes/{name}/methods/{selector}](/webside/api/code/classes/get-8.md)                         | Retrieve the method with the given selector in the given class                                                                                                                                                          |                                                                                          -                                                                                          | -       |
|   GET  | [/categories](/webside/api/code/categories/get.md)                                               | Retrieve all categories in the system                                                                                                                                                                                   |                                                                                          -                                                                                          | -       |
|   GET  | [/usual-categories](/webside/api/code/categories/get-1.md)                                       | Retrieve popular categories used throughout the system                                                                                                                                                                  |                                                                                          -                                                                                          | -       |
|   GET  | [/packages](/webside/api/code/packages/get.md)                                                   | Retrieve all packages                                                                                                                                                                                                   |                                                                                       `names`                                                                                       | -       |
|   GET  | [/packages/{name}](/webside/api/code/packages/get-1.md)                                          | Retrieve a given package                                                                                                                                                                                                |                                                                                          -                                                                                          | -       |
|   GET  | [/packages/{name}/classes](/webside/api/code/packages/get-2.md)                                  | Retrieve actual classes of a given package                                                                                                                                                                              |                                                                       `extended`, `tree`, `names`, `category`                                                                       | -       |
|   GET  | [/packages/{name}/methods](/webside/api/code/packages/get-3.md)                                  | Retrieve actual methods of a given package                                                                                                                                                                              |                                                                                          -                                                                                          | -       |
|   GET  | [/search](/webside/api/code/get.md)                                                              | Perform a search on the system                                                                                                                                                                                          |                                                                      `text`, `ignoreCase`, `condition`, `type`                                                                      | -       |
|   GET  | [/autocompletions](/webside/api/code/autocompletions/post.md)                                    | Retrieve completion entries for a given code, position and context                                                                                                                                                      |                                                                                          -                                                                                          | -       |
|   GET  | [/classtemplate](/webside/api/code/classtemplate/get.md)                                         | Provide a class template                                                                                                                                                                                                |                                                                                      `package`                                                                                      | -       |
|   GET  | [/methodtemplate](/webside/api/code/classtemplate/get-1.md)                                      | Provide a method template                                                                                                                                                                                               |                                                                                          -                                                                                          | -       |
|  POST  | [/selector](https://github.com/guillermoamaral/Webside/blob/main/docs/api/code/selector/post.md) | Find a selector in a piece of source code                                                                                                                                                                               |                                                                                          -                                                                                          | -       |
