Rest API für MyOOS. Die State-of-the-Art Webschnittstelle für Datenzugriff

MyOOS hat einen Fehler, oder tut nicht das, was Ihr erwartet? Derartige "Unanehmlichkeiten" bitte hier.
Antworten
r23
Beiträge: 2698
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Rest API für MyOOS. Die State-of-the-Art Webschnittstelle für Datenzugriff

Beitrag von r23 »

Hallo,

das MyOOS Projekt benötigt eine Rest API

Ich habe mit composer die API Platform-Bibliothek in das Projekt aufgenommen.


Die API Platform-Bibliothek ist eine leistungsstarke und benutzerfreundliche Bibliothek, um hypermedia-getriebene REST-APIs zu erstellen. Sie ist ein Bestandteil des API Platform-Frameworks, das auch JavaScript-Tools für die Erstellung von Web- und mobilen Anwendungen basierend auf den beliebtesten Frontend-Technologien bietet.

Da wir Symfony verwenden, können wir die API Platform-Bibliothek als Bundle installieren und in unserem Open Source Projekt nutzen. Wir können dann unsere PHP-Klassen als API-Ressourcen annotieren und API Platform wird automatisch die entsprechenden Endpunkte, Dokumentationen und Validierungen generieren. Wir können auch die API Platform-Bibliothek verwenden, um GraphQL-APIs zu erstellen oder unseren zukünftigen bestehenden Symfony-Controller als API-Operationen zu registrieren.


Wir können dann das API Platform-Bundle in unserem Shop aktivieren, indem wir es der bundles.php-Datei hinzufügen:

Code: Alles auswählen

<?php

return [
    // ...
    ApiPlatform\Core\Bridge\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true],
];
Nun können wir mit der Erstellung Ihrer API-Ressourcen beginnen. Eine API-Ressource ist eine PHP-Klasse, die eine Entität oder ein Konzept repräsentiert, das über die API verfügbar ist. Zum Beispiel können wir eine Book-Klasse erstellen, die ein Buch in Ihrer Buchhandlung darstellt:

Code: Alles auswählen

<?php
// src/Entity/Book.php

namespace App\Entity;

use ApiPlatform\Core\Annotation\ApiResource;
use Doctrine\ORM\Mapping as ORM;

/**
 * A book.
 *
 * @ORM\Entity
 * @ApiResource
 */
class Book
{
    /**
     * The id of this book.
     *
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * The title of this book.
     *
     * @ORM\Column
     */
    public $title;

    /**
     * The author of this book.
     *
     * @ORM\Column
     */
    public $author;

    // ...
}
Indem wir die `@ApiResource`-Annotation zu unser Klasse hinzufügen, teilen wir API Platform mit, dass diese Klasse eine API-Ressource ist und dass sie CRUD-Operationen unterstützen soll. API Platform wird dann automatisch die entsprechenden Routen, Controller, Serialisierer und Dokumentationen für Ihre Ressource erstellen².

Wir können die `@ApiResource`-Annotation verwenden, um verschiedene Optionen für unsere Ressource anzugeben, wie z.B. welche HTTP-Methoden erlaubt sind, welche Serialisierungsgruppen verwendet werden sollen, welche Filter angewendet werden sollen usw. Wir können auch benutzerdefinierte Operationen für unsere Ressource definieren, indem wir die `@ApiResource`-Annotation oder die `@ApiProperty`-Annotation für einzelne Eigenschaften verwenden².

Um mehr über die API Platform-Bibliothek zu erfahren, empfehle ich die offizielle Dokumentation zu lesen. Dort finden sich viele Beispiele, Anleitungen und Referenzen, um uns zu helfen, die API zu erstellen und anzupassen.

The API Platform Core Library - API Platform. https://api-platform.com/docs/core/.
API Platform Documentation - API Platform. https://api-platform.com/docs/.
API Platform Documentation - API Platform. https://api-platform.com/docs/.
API Platform. https://api-platform.com/.
r23
Beiträge: 2698
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: Rest API für MyOOS. Die State-of-the-Art Webschnittstelle für Datenzugriff

Beitrag von r23 »

Hallo, das ist Bing. Ich bin froh, dass Sie sich für die Erstellung von REST-APIs interessieren 😊.

REST-APIs sind eine beliebte und effektive Methode, um Webdienste zu erstellen und zu nutzen. Sie basieren auf den Prinzipien der Repräsentational State Transfer (REST) Architektur, die eine einheitliche, adressierbare, zustandslose und hypermediale Schnittstelle für die Interaktion mit Ressourcen über das HTTP-Protokoll vorschreibt.

Es gibt viele Best Practices für die Erstellung von REST-APIs, aber hier sind einige der wichtigsten, die Sie beachten sollten:

- Verwenden Sie sinnvolle und konsistente Namen für Ihre Ressourcen und Endpunkte. Vermeiden Sie unnötige Abkürzungen, Großbuchstaben oder Unterstriche. Verwenden Sie Pluralformen für Sammlungen von Ressourcen und Singularformen für einzelne Ressourcen. Zum Beispiel: `/teams`, `/teams/1`, `/players`, `/players/42`.
- Verwenden Sie die standardmäßigen HTTP-Methoden (GET, POST, PUT, PATCH, DELETE) für Ihre CRUD-Operationen (Create, Read, Update, Delete). Vermeiden Sie benutzerdefinierte Methoden oder Aktionen, die nicht dem REST-Paradigma entsprechen. Zum Beispiel: `GET /teams` (um alle Teams abzurufen), `POST /teams` (um ein neues Team zu erstellen), `PUT /teams/1` (um ein bestehendes Team vollständig zu aktualisieren), `PATCH /teams/1` (um ein bestehendes Team teilweise zu aktualisieren), `DELETE /teams/1` (um ein bestehendes Team zu löschen).
- Verwenden Sie geeignete HTTP-Statuscodes für Ihre Antworten. Vermeiden Sie immer den gleichen Statuscode zurückzugeben oder Statuscodes zu verwenden, die nicht der Semantik Ihrer Operation entsprechen. Zum Beispiel: `200 OK` (für erfolgreiche Anfragen), `201 Created` (für erfolgreiche Erstellung von Ressourcen), `400 Bad Request` (für ungültige oder fehlerhafte Anfragen), `401 Unauthorized` (für nicht authentifizierte Anfragen), `403 Forbidden` (für nicht autorisierte Anfragen), `404 Not Found` (für nicht vorhandene Ressourcen), `500 Internal Server Error` (für unerwartete Serverfehler).
- Verwenden Sie ein standardisiertes und strukturiertes Format für Ihre Antworten. Vermeiden Sie inkonsistente oder redundante Daten in Ihren Antworten. Verwenden Sie ein gängiges Format wie JSON oder XML für Ihre Antworten. Zum Beispiel:

Code: Alles auswählen

```json
{
  "data": {
    "id": 1,
    "type": "team",
    "attributes": {
      "name": "FC Bayern München",
      "country": "Germany",
      "league": "Bundesliga"
    },
    "relationships": {
      "manager": {
        "data": {
          "id": 10,
          "type": "person"
        },
        "links": {
          "self": "/teams/1/manager"
        }
      },
      "players": {
        "data": [
          {
            "id": 20,
            "type": "person"
          },
          {
            "id": 21,
            "type": "person"
          }
        ],
        "links": {
          "self": "/teams/1/players"
        }
      }
    }
  },
  "links": {
    "self": "/teams/1"
  }
}
```
- Verwenden Sie geeignete Parameter für Ihre Anfragen. Vermeiden Sie zu viele oder zu wenige Parameter in Ihren Anfragen. Verwenden Sie Pfadparameter für die Identifizierung von Ressourcen, Query-Parameter für die Filterung, Sortierung oder Paginierung von Ressourcen und Body-Parameter für die Übermittlung von Daten an den Server. Zum Beispiel: `GET /teams?sort=name&page=2&size=10` (um Teams nach Namen sortiert und paginiert abzurufen), `POST /teams` (um ein neues Team mit den Daten im Body zu erstellen).

- Verwenden Sie geeignete Sicherheitsmaßnahmen für Ihre API. Vermeiden Sie unsichere oder veraltete Methoden zur Authentifizierung oder Verschlüsselung Ihrer API. Verwenden Sie eine sichere Verbindung (HTTPS) für Ihre API. Verwenden Sie einen standardisierten Mechanismus wie OAuth 2.0 oder JWT (JSON Web Token) für die Authentifizierung und Autorisierung Ihrer API. Zum Beispiel: `Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...` (um einen gültigen JWT im Header zu senden).

- Verwenden Sie geeignete Dokumentationswerkzeuge für Ihre API. Vermeiden Sie unvollständige oder veraltete Dokumentationen für Ihre API. Verwenden Sie eine standardisierte Sprache wie OpenAPI oder RAML für die Beschreibung Ihrer API. Verwenden Sie eine interaktive Plattform wie Swagger oder Postman für die Präsentation und das Testen Ihrer API. Zum Beispiel: [Swagger Editor](^1^) (um Ihre API mit OpenAPI zu beschreiben und zu testen).

Dies sind nur einige der Best Practices für die Erstellung von REST-APIs, aber es gibt noch viele weitere, die Sie lernen und anwenden können. Wenn Sie mehr über REST-APIs erfahren möchten, empfehle ich Ihnen, die folgenden Quellen zu lesen:

RESTful APIs richtig gemacht - Anleitung für bessere REST-Schnittstellen
https://ichi.pro/de/so-erstellen-sie-ei ... 4074024020

So erstellen Sie eine RESTful-API - Ein tiefer Einblick in REST-APIs
https://www.lucidchart.com/blog/de/apis ... e-vorteile

Ich hoffe, diese Antwort war hilfreich für Sie. Wenn Sie weitere Fragen haben oder Hilfe bei der Erstellung Ihrer REST-API benötigen, lassen Sie es mich wissen. Ich bin immer gerne bereit, Ihnen mehr Informationen zu geben 😊.

Quelle: Unterhaltung mit Bing, 5.8.2023
(1) RESTful APIs richtig gemacht - Anleitung für bessere REST ... - JAX. https://jax.de/blog/software-architectu ... g-gemacht/.
(2) So erstellen Sie eine RESTful-API - Ein tiefer Einblick in REST-APIs. https://ichi.pro/de/so-erstellen-sie-ei ... 4074024020.
(3) APIs erstellen: Arten, Schritte und Vorteile | Lucidchart Blog. https://www.lucidchart.com/blog/de/apis ... e-vorteile.
Antworten