Skip to content

j-schumann/mw-api

Repository files navigation

Stand: 2024-03-04

wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.54/swagger-codegen-cli-3.0.54.jar -O swagger.jar
java -jar swagger.jar generate -i https://doku.mittwald-api.de/docs/swagger-public.json -l php -o mw-api --invoker-package "Mittwald\Api" --api-package Functions --git-user-id vrok --git-repo-id mw-api

Schnittstellen für Mittwald-Kunden

Für die öffentliche API, alle Bestandteile und diese Dokumentation bieten wir keinen Support. Wir behalten uns vor, Änderungen jederzeit und ohne Ankündigung oder Dokumentation durchzuführen. Authentifizierung ----------------- ### Mit Nutzername & Passwort Zur Authentifizierung wird ein zuvor ausgestelltes API-Token benötigt. Bei Requests kann dieses Token innerhalb eines Authorization-Headers übergeben werden: http GET /v1/customers/123456 HTTP/1.1 Host: api.mittwald.de Authorization: Bearer {TOKEN-HIER-EINFÜGEN} Alternativ dazu kann das Token auch in Form des Query-Parameters access_token übergeben werden: GET /v1/customers/123456?access_token={TOKEN-HIER-EINFÜGEN} HTTP/1.1 Host: api.mittwald.de Um ein Token zu beziehen, kann der /authenticate-Endpunkt genutzt werden. Hier erfolgt eine Authentifzierung über die Zugangsdaten des Mittwald-Kundencenters. POST /v1/authenticate HTTP/1.1 Host: api.mittwald.de Content-Type: application/json Accept: application/jwt { "username": "r1234", "password": "{PASSWORT-HIER-EINFÜGEN}" } Rückgabewert dieses Aufrufs ist ein API-Token. Dieses hat eine begrenzte Gültigkeitsdauer. Wichtig: Client-Applikationen sollten das API-Token für seine Gültigkeitsdauer cachen, und erst anschließend ein neues Token über die API anfordern. ### Mit Access-Token Für Anwendungen, die dauerhaft Zugriff auf die Mittwald-API benötigen, wird nicht empfohlen, Nutzername und Passwort dauerhaft in der jeweiligen Anwendung zu speichern. Stattdessen empfehlen wir den Einsatz eines Access Tokens, welches nach einem (initialen) Login mit Nutzername und Passwort erstellt und im Anschluss anstelle dessen genutzt werden kann. Hierzu wird zunächst ein reguläres API-Token benötigt, das per Nutzername und Passwort bezogen werden kann. Weder Nutzername+Passwort noch das damit bezogene API-Token müssen dauerhaft gespeichert werden. Sie dienen lediglich dazu, ein Access Token zu erstellen, welches im Anschluss dauerhaft in der Applikation gespeichert werden kann: POST /v1/authentication/tokens HTTP/1.1 Host: api.mittwald.de Content-Type: application/json { \"description\": \"Meine Anwendung\" } In der Antwort auf obige Anfrage ist das eigentliche Access Token und dessen ID enthalten (mit Beispiel-Daten): HTTP/1.1 201 Created Content-Type: application/json { \"uuid\": \"2a91ce52-2058-404b-9959-ac7d2fbbbfbc\", \"token\": \"MW_aEQyz5j9YmTaamTq2N9X3d2sBDACLUoz\", \"crdate\": \"2021-08-23T14:06:17.580Z\", \"description\": \"Meine Anwendung\" } uuid und token dieser Antwort können bei nachfolgenden Authentifzierungs-Vorgängen als Nutzername und Passwort genutzt werden. Rate Limiting ------------- Zur Sicherstellung der Systemstabilität sind einige API-Endpunkte in der Anzahl der durchführbaren Anfragen beschränkt. Die Limitierung bezieht sich dabei stets auf ein Zeitfenster von 15 Minuten. Bei auf diese Weise zugriffsbeschränkten API-Endpunkten enthalten die HTTP-Antworten stets einen X-RateLimit-Header, welcher die maximale Anzahl der ausführbaren Anfragen enthält. Außerdem enthält jede Antwort einen X-RateLimit-Remaining-Header, welcher die aktuell noch verfügbaren Anfragen enthält: HTTP/1.1 200 OK Content-Type: application/json;charset=utf8 Content-Length: 1234 X-RateLimit: 1000 X-RateLimit-Remaining: 712 Caching ------- Einige Anfragen an die API können zwecks besserer Performance aus einem serverseitigen Cache beantwortet werden. Wurde eine Anfrage aus dem Cache beantwortet, enthält die Antwort einen X-Cache: HIT-Header. Der Cache einer Ressource wird dann geleert, wenn ein POST-, PUT- oder DELETE-Request an dieselbe URI gesendet wird, oder bei einem GET-Request ein Cache-Control: no-cache-Header gesendet wird.

This PHP package is automatically generated by the Swagger Codegen project:

  • API version: 1.4.1
  • Build package: io.swagger.codegen.v3.generators.php.PhpClientCodegen

Requirements

PHP 7.4 and later

Installation & Usage

Composer

To install the bindings via Composer, add the following to composer.json:

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/j-schumann/mw-api.git"
    }
  ],
  "require": {
    "vrok/mw-api": "^0.0.5"
  }
}

Then run composer install

Manual Installation

Download the files and include autoload.php:

    require_once('/path/to/SwaggerClient-php/vendor/autoload.php');

Tests

To run the unit tests:

composer install
./vendor/bin/phpunit

Getting Started

Please follow the installation procedure and then run the following:

<?php
require_once(__DIR__ . '/vendor/autoload.php');

$apiInstance = new Mittwald\Api\Functions\AccountsApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client()
);
$account_identifier = "account_identifier_example"; // string | Name oder ID eines Accounts

try {
    $result = $apiInstance->getAccount($account_identifier);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountsApi->getAccount: ', $e->getMessage(), PHP_EOL;
}

$apiInstance = new Mittwald\Api\Functions\AccountsApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client()
);
$account_identifier = "account_identifier_example"; // string | Name oder ID eines Accounts

try {
    $result = $apiInstance->getAccountStatistics($account_identifier);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountsApi->getAccountStatistics: ', $e->getMessage(), PHP_EOL;
}

$apiInstance = new Mittwald\Api\Functions\AccountsApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client()
);
$account_identifier = "account_identifier_example"; // string | Name oder ID eines Accounts

try {
    $result = $apiInstance->getAccountVisitorStatistics($account_identifier);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountsApi->getAccountVisitorStatistics: ', $e->getMessage(), PHP_EOL;
}

$apiInstance = new Mittwald\Api\Functions\AccountsApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client()
);
$customer_number = 56; // int | Kundennummer
$advised = false; // bool | Dieser Parameter steuert, ob auch Accounts zurückgeliefert werden sollen, für die eine Verwaltungsfreigabe besteht, aber nicht zur Kundennummer `{customerNumber}` gehören.'
$owned = true; // bool | Dieser Parameter steuert, ob Accounts zurückgeliefert werden sollen, die direkt der Kundennummer `{customerNumber}` gehören. Dieser Parameter hat standardmäßig den Wert `true`; über den Wert `false` können in Kombination mit dem Parameter `advised` ausschließlich Accounts abgefragt werden, für die eine Verwaltungsfreigabe besteht.

try {
    $result = $apiInstance->listAccountsByCustomer($customer_number, $advised, $owned);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountsApi->listAccountsByCustomer: ', $e->getMessage(), PHP_EOL;
}

$apiInstance = new Mittwald\Api\Functions\AccountsApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client()
);
$account_identifier = "account_identifier_example"; // string | Name oder ID eines Accounts
$install_path = "install_path_example"; // string | Filtert Software-Installationen nach Installationspfad (z.B. `&installPath=%2Fhtml%2Ftypo3`)

try {
    $result = $apiInstance->listSoftwareInstallationsByAccount($account_identifier, $install_path);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountsApi->listSoftwareInstallationsByAccount: ', $e->getMessage(), PHP_EOL;
}
?>

Documentation for API Endpoints

All URIs are relative to https://api.mittwald.de/v1

Class Method HTTP request Description
AccountsApi getAccount GET /accounts/{accountIdentifier} Account auslesen
AccountsApi getAccountStatistics GET /accounts/{accountIdentifier}/stats
AccountsApi getAccountVisitorStatistics GET /accounts/{accountIdentifier}/stats/visitors
AccountsApi listAccountsByCustomer GET /customers/{customerNumber}/accounts Accounts eines Kunden
AccountsApi listSoftwareInstallationsByAccount GET /accounts/{accountIdentifier}/installations Softwareinstallationen auslesen
AngeboteApi createQuoteFromCart POST /carts/{cartIdentifier}/actions/offer Angebot versenden
AngeboteApi recommendCart POST /carts/{cartIdentifier}/actions/recommend Warenkorbvorlage für Account-Ausgliederung erstellen
AngeboteApi requestQuote POST /offers Neues Angebot anfordern
AngeboteApi shareCart POST /carts/{cartIdentifier}/actions/share Warenkorbvorlage erstellen
AngeboteApi verifyRecommendCart POST /carts/{cartIdentifier}/actions/recommendation/verify Überprüfe PIN-Code von Empfehlung
ArtikelApi getArticle GET /articles/{articleNumber} Artikeldetails
ArtikelApi getArticleUpgrades GET /articles/{articleNumber}/upgrades Artikel Upgrades
ArtikelApi getCrossSellingOptions GET /articles/{articleNumber}/cross-selling Cross-Selling Optionen
ArtikelApi listArticles GET /articles Suche nach Artikeln
AuthentifizierungApi authenticate POST /authenticate Anforderung eines neuen API-Tokens
AuthentifizierungApi createApplicationToken POST /authentication/tokens Hinterlegen von neuen Application-Tokens
AuthentifizierungApi deleteApplicationToken DELETE /authentication/tokens/{uuid} Löschen von Application-Tokens
AuthentifizierungApi listApplicationTokens GET /authentication/tokens Auslesen von erstellten Application-Tokens
BankdatenApi convertBankDataToSEPA POST /bankdata/actions/convert Konvertiert Bankdaten in das IBAN / BIC Format
BestellungenApi orderPartnerBox POST /orders/partnerbox Bestellung eines Partnerbox
BestellungenApi orderPartnerProgram POST /orders/partnerprogram Anmeldung am Partnerprogramm
BestellungenApi orderPreUpgradeCheck GET /orders/preUpgradeCheck/{accountIdentifier}/{articleNumber} Pre-Upgrade Check
DSGVOKontakteApi createGDPRContact POST /gdpr/contacts Kontakt - Adressdaten anlegen
DSGVOKontakteApi getGDPRContact GET /gdpr/contacts/{contactIdentifier} Kontakt - Liefert einen bestimmten Adressdatensatz
DSGVOKontakteApi getGDPRContacts GET /gdpr/contacts Kontakt - Liefert alle hinterlegten Adressdaten
DSGVOTOMsApi createGDPRTom POST /gdpr/toms TOM - TOM anlegen
DSGVOTOMsApi getGDPRTom GET /gdpr/toms/{tomIdentifier} TOM - Liefert einen bestimmten TOM
DSGVOTOMsApi getGDPRToms GET /gdpr/toms TOM - Liefert alle hinterlegten TOMs
DSGVOVertrgeApi acceptGDPRContract POST /gdpr/contracts/{contractIdentifier}/actions/accept Vertrag - Akzeptiert den Vertrag
DSGVOVertrgeApi createGDPRContract POST /gdpr/contracts Vertrag - Vertrag anlegen
DSGVOVertrgeApi createGDPRContractPDF POST /gdpr/contracts/{contractIdentifier}/actions/pdf Vertrag - Liefert ein PDF zu einem bestimmten Vertrag
DSGVOVertrgeApi createGDPRContractPresets POST /gdpr/contract-presets Vertragskonfiguration - Speichert eine Vertrags-Konfiguration
DSGVOVertrgeApi deleteGDPRContract DELETE /gdpr/contracts/{contractIdentifier} Vertrag - Löscht einen bestimmten Vertrag
DSGVOVertrgeApi deleteGDPRPDF DELETE /gdpr/pdfs/{pdfIdentifier} PDF - Löscht ein bestimmtes Vertrags-PDF
DSGVOVertrgeApi downloadGDPRPDF POST /gdpr/pdfs/{pdfIdentifier}/actions/download PDF - Stellt ein Vertrags-PDF zum Download bereit
DSGVOVertrgeApi getGDPRContract GET /gdpr/contracts/{contractIdentifier} Vertrag - Liefert einen bestimmten Vertrag
DSGVOVertrgeApi getGDPRContractPreset GET /gdpr/contract-presets/{contractPresetIdentifier} Vertragskonfiguration - Liefert eine bestimmte Vertrags-Konfiguration
DSGVOVertrgeApi getGDPRContractPresets GET /gdpr/contract-presets Vertragskonfiguration - Liefert alle gespeicherten Vertrags-Konfigurationen
DSGVOVertrgeApi getGDPRContracts GET /gdpr/contracts Vertrag - Liefert alle hinterlegten Verträge
DSGVOVertrgeApi getGDPRPDF GET /gdpr/pdfs/{pdfIdentifier} PDF - Liefert ein bestimmtes Vertrags-PDF
DSGVOVertrgeApi getGDPRPDFs GET /gdpr/pdfs PDF - Liefert die Daten der Vertrags-PDFs
DSGVOVertrgeApi sendGDPRContractMail POST /gdpr/contracts/{contractIdentifier}/actions/mail Vertrag - Verschickt eine E-Mail mit PDF an den Empfänger des Vertrags
DSGVOVertrgeApi uploadGDPRPDF POST /gdpr/pdfs PDF - Vertrags-PDF hochladen
DatabaseApi listDatabaseTypes GET /databasetypes Datenbanktypen
DomainsApi checkDomainAvailability POST /domains/{domainIdentifier}/actions/check Domainverfügbarkeit prüfen
DomainsApi createSubdomain POST /accounts/{accountIdentifier}/domains/{domainIdentifier}/subdomains Subdomain erstellen
DomainsApi deleteDomain DELETE /accounts/{accountIdentifier}/domains/{domainIdentifier} Domain löschen/kündigen
DomainsApi deleteSubdomain DELETE /accounts/{accountIdentifier}/domains/{domainIdentifier}/subdomains Subdomain löschen
DomainsApi domainProxyList GET /accounts/{accountIdentifier}/domainsproxies Domain Proxies eines Accounts
DomainsApi getDomainAuthCode GET /accounts/{accountIdentifier}/domains/{domainIdentifier}/authcode Auth-Code einer Domain auslesen
DomainsApi getToplevelDomain GET /topleveldomains/{topLevelDomainIdentifier} Toplevel-Domain auslesen
DomainsApi listDomainsByAccount GET /accounts/{accountIdentifier}/domains Domains eines Accounts auslesen
DomainsApi listSubdomainsByDomain GET /accounts/{accountIdentifier}/domains/{domainIdentifier}/subdomains Subdomains eines Accounts auslesen
DomainsApi listToplevelDomains GET /topleveldomains Toplevel-Domains auslesen
DomainsApi registerNewDomain POST /accounts/{accountIdentifier}/domains Domain registrieren/Transfer einleiten
KndigungApi cancelContract POST /cancellations Kündigung einleiten
KndigungApi resendCancellationConfirmation POST /cancellations/{cancellationIdentifier}/actions/confirmationmail Kündigungsbestätigung erneut senden
KundenApi getBenefitDetails GET /customers/{customerNumber}/benefits/{benefit} Details zu einer gebuchten Leistung
KundenApi getCurrentCustomer GET /customer Details zu dem aktuellem Kunden
KundenApi getCustomer GET /customers/{customerNumber} Kundendetails auslesen
KundenApi getCustomerBillingRecipient GET /customers/{customerNumber}/billingrecipient Rechungsempfänger auslesen
KundenApi getCustomerBillingSettings GET /customers/{customerNumber}/billingsettings Rechungseinstellungen auslesen
KundenApi getCustomerContactPerson GET /customers/{customerNumber}/contactperson Ansprechpartner auslesen
KundenApi getCustomerContractPartner GET /customers/{customerNumber}/contractpartner Vertragspartner auslesen
KundenApi getCustomerPaymentSettings GET /customers/{customerNumber}/paymentsettings Zahlungseinstellungen auslesen
KundenApi getInvoice GET /invoices/{invoiceNumber} Rechnung eines Kunden
KundenApi getPaymentReceipts GET /invoices/{invoiceNumber}/paymentreceipts Zahlungseingänge einer Rechnung
KundenApi listAccountsByCustomer GET /customers/{customerNumber}/accounts Accounts eines Kunden
KundenApi listInvoicesByCustomer GET /customers/{customerNumber}/invoices Rechnungen eines Kunden
KundenApi resetCustomerBillingRecipient DELETE /customers/{customerNumber}/billingrecipient Rechnungsempfänger eines Kunden zurücksetzen
KundenApi updateCustomerBillingRecipient PUT /customers/{customerNumber}/billingrecipient Rechnungsempfänger ändern
KundenApi updateCustomerBillingSettings PUT /customers/{customerNumber}/billingsettings Rechnungseinstellungen ändern
KundenApi updateCustomerContactPerson PUT /customers/{customerNumber}/contactperson Ansprechpartner ändern
KundenApi updateCustomerContractPartner PUT /customers/{customerNumber}/contractpartner Vertragspartner ändern
KundenApi updateCustomerPaymentSettings PUT /customers/{customerNumber}/paymentsettings Zahlungseinstellungen ändern
MailadressenApi listEmailAddressesByAccount GET /accounts/{accountIdentifier}/mailaddresses Mailadressen eines Accounts auslesen
PartnerApi orderPartnerBox POST /orders/partnerbox Bestellung eines Partnerbox
PartnerApi orderPartnerProgram POST /orders/partnerprogram Anmeldung am Partnerprogramm
PromotionCodeApi getPromotionCode GET /promotioncodes/{promotionCode} Promotioncode auslesen
PromotionCodeApi verifyPromotionCode POST /promotioncodes/{promotionCode}/actions/validate Promotioncode validieren
ResellerApi getReseller GET /resellers/{resellerIdentifier} Reseller auslesen
SoftwareApi getSoftwareInstallation GET /installations/{installationIdentifier} Details einer Softwareinstallation auslesen
SoftwareApi listSoftwareInstallationExtensions GET /installations/{installationIdentifier}/extensions Extensions einer Softwareinstallation auslesen
SoftwareApi listSoftwareInstallationsByAccount GET /accounts/{accountIdentifier}/installations Softwareinstallationen auslesen
SoftwareApi listSoftwares GET /software Unterstützte Software auslesen
SubdomainApi createSubdomain POST /accounts/{accountIdentifier}/domains/{domainIdentifier}/subdomains Subdomain erstellen
SubdomainApi deleteSubdomain DELETE /accounts/{accountIdentifier}/domains/{domainIdentifier}/subdomains Subdomain löschen
SubdomainApi getSubdomain GET /accounts/{accountIdentifier}/domains/{domainIdentifier}/subdomains/{subdomainIdentifier} Subdomain auslesen
SubdomainApi listSubdomainsByDomain GET /accounts/{accountIdentifier}/domains/{domainIdentifier}/subdomains Subdomains eines Accounts auslesen
TicketsApi answerSupportTicket POST /tickets/{ticketIdentifier}/answers Ticketantwort erstellen
TicketsApi createSupportTicket POST /tickets Neues Support-Ticket
TicketsApi listSupportTicketAnswers GET /tickets/{ticketIdentifier}/answers Ticketantworten auslesen
TicketsApi listSupportTickets GET /customers/{customerNumber}/tickets Support-Tickets auslesen
VertrgeApi cancelContract POST /cancellations Kündigung einleiten
VertrgeApi listCancelledContractsByCustomer GET /customers/{customerNumber}/cancelledcontracts Verträge eines Kunden, die sich aktuell im Kündigungsprozess befinden
VertrgeApi listContractsByCustomer GET /customers/{customerNumber}/contracts Verträge auslesen
VertrgeApi resendCancellationConfirmation POST /cancellations/{cancellationIdentifier}/actions/confirmationmail Kündigungsbestätigung erneut senden
VirtApi listGuestOperatingSystems GET /virt/guestoperatingsystems Root-Server Betriebssysteme
WarenkorbApi addDomainToCart POST /carts/{cartIdentifier}/domains Warenkorb-Domainposition hinzufügen
WarenkorbApi addItemToCart POST /carts/{cartIdentifier}/items Warenkorb-Position hinzufügen
WarenkorbApi checkoutOrder POST /carts/{cartIdentifier}/actions/checkout Bestellung abschließen
WarenkorbApi confirmSMSVerification POST /carts/{cartIdentifier}/actions/verify SMS-Verifizierung bestätigen
WarenkorbApi createCart POST /carts Warenkorb erstellen
WarenkorbApi createCartFromTemplate POST /carts/{cartIdentifier} Warenkorb aus Vorlage erstellen
WarenkorbApi createQuoteFromCart POST /carts/{cartIdentifier}/actions/offer Angebot versenden
WarenkorbApi deleteCart DELETE /carts/{cartIdentifier} Warenkorb löschen
WarenkorbApi deleteItemFromCart DELETE /carts/{cartIdentifier}/items/{itemIdentifier} Warenkorb-Position löschen
WarenkorbApi getCart GET /carts/{cartIdentifier} Warenkorb auslesen
WarenkorbApi recommendCart POST /carts/{cartIdentifier}/actions/recommend Warenkorbvorlage für Account-Ausgliederung erstellen
WarenkorbApi requestSMSVerification POST /carts/{cartIdentifier}/actions/requestverification SMS-Verifizierung starten
WarenkorbApi shareCart POST /carts/{cartIdentifier}/actions/share Warenkorbvorlage erstellen
WarenkorbApi updateCart PUT /carts/{cartIdentifier} Warenkorb bearbeiten
WarenkorbApi verifyRecommendCart POST /carts/{cartIdentifier}/actions/recommendation/verify Überprüfe PIN-Code von Empfehlung
WebhooksApi createWebhook POST /webhooks Registriert einen neuen Webhook
WebhooksApi deleteWebhook DELETE /webhooks/{webhookIdentifier} Löscht einen Webhook
WebhooksApi getWebhook GET /webhooks/{webhookIdentifier} Liefert einen bestimmten Webhook
WebhooksApi listWebhooks GET /webhooks Liefert alle hinterlegten Webhooks
WebhooksApi updateWebhook PUT /webhooks/{webhookIdentifier} Updated den gewünschten Webhook

Documentation For Models

Documentation For Authorization

All endpoints do not require authorization.

Author