> For the complete documentation index, see [llms.txt](https://docs.chamilo.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chamilo.org/3.x/el/odigos-programmatisti/developer-guide/api/endpoints-reference.md).

# Αναφορά τελικών σημείων

Το API Platform δημιουργεί αυτόματα τελικά σημεία REST για οντότητες με την επισημείωση `#[ApiResource]`. Το Chamilo εκθέτει περισσότερους από 100 πόρους.

## Τυπικές Λειτουργίες

Για κάθε πόρο API, οι ακόλουθες λειτουργίες είναι συνήθως διαθέσιμες:

| Μέθοδος  | Διαδρομή                | Περιγραφή                      |
| -------- | ----------------------- | ------------------------------ |
| `GET`    | `/api/{resources}`      | Λίστα (συλλογή)                |
| `POST`   | `/api/{resources}`      | Δημιουργία                     |
| `GET`    | `/api/{resources}/{id}` | Ανάγνωση (μεμονωμένο στοιχείο) |
| `PUT`    | `/api/{resources}/{id}` | Πλήρης ενημέρωση               |
| `PATCH`  | `/api/{resources}/{id}` | Μερική ενημέρωση               |
| `DELETE` | `/api/{resources}/{id}` | Διαγραφή                       |

Δεν είναι ενεργοποιημένες όλες οι λειτουργίες για κάθε πόρο — ισχύουν περιορισμοί ασφαλείας.

## Κύριοι Πόροι API

### Πόροι Πλατφόρμας

| Πόρος          | Διαδρομή              | Περιγραφή                        |
| -------------- | --------------------- | -------------------------------- |
| Users          | `/api/users`          | Λογαριασμοί χρηστών              |
| Courses        | `/api/courses`        | Μαθήματα                         |
| Sessions       | `/api/sessions`       | Εκπαιδευτικές συνεδρίες          |
| Resource Nodes | `/api/resource_nodes` | Ενοποιημένοι κόμβοι περιεχομένου |
| Access URLs    | `/api/access_urls`    | Πύλες πολλαπλών URL              |
| Messages       | `/api/messages`       | Μηνύματα πλατφόρμας              |

### Πόροι Περιεχομένου Μαθήματος

| Πόρος                | Διαδρομή                      | Περιγραφή            |
| -------------------- | ----------------------------- | -------------------- |
| Documents            | `/api/documents`              | Έγγραφα μαθήματος    |
| Learning Paths       | `/api/learning_paths`         | Διαδρομές μάθησης    |
| Glossaries           | `/api/glossaries`             | Όροι γλωσσαρίου      |
| Links                | `/api/links`                  | Εξωτερικοί σύνδεσμοι |
| Calendar Events      | `/api/c_calendar_events`      | Συμβάντα ημερολογίου |
| Student Publications | `/api/c_student_publications` | Εργασίες             |
| Blogs                | `/api/c_blogs`                | Ιστολόγια μαθήματος  |
| Groups               | `/api/c_groups`               | Ομάδες μαθήματος     |

### Πόροι Παρακολούθησης

| Πόρος                | Διαδρομή                    | Περιγραφή           |
| -------------------- | --------------------------- | ------------------- |
| Gradebook Categories | `/api/gradebook_categories` | Ρύθμιση βαθμολογίου |
| Gradebook Results    | `/api/gradebook_results`    | Βαθμοί              |

## Φιλτράρισμα και Σελιδοποίηση

Το API Platform υποστηρίζει:

* **Σελιδοποίηση**: `?page=2&itemsPerPage=30`
* **Φιλτράρισμα**: `?title=Introduction` (εξαρτάται από τα διαμορφωμένα φίλτρα)
* **Ταξινόμηση**: `?order[title]=asc`
* **Αναζήτηση**: Πλήρης αναζήτηση κειμένου στα διαμορφωμένα πεδία

## Διαπραγμάτευση Περιεχομένου

Το API υποστηρίζει πολλαπλές μορφές:

* `application/ld+json` (προεπιλογή — JSON-LD)
* `application/json`
* `text/html` (τεκμηρίωση API)

Ορίστε την κεφαλίδα `Accept` για να επιλέξετε τη μορφή απόκρισης.

## Ασφάλεια

Κάθε τελικό σημείο επιβάλλει ασφάλεια μέσω:

* Αυθεντικοποίησης JWT (απαιτείται για τα περισσότερα τελικά σημεία)
* Symfony security voters (δικαιώματα σε επίπεδο πόρου)
* Ελέγχου πρόσβασης βάσει ρόλων (π.χ. τελικά σημεία μόνο για διαχειριστές)
