vrok / mw-api
Requires
- php: ^7.4 || ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.51.0
- phpunit/phpunit: ^8.0 || ^9.0
- roave/security-advisories: dev-latest
README
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-Parametersaccess_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
undtoken
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 einenX-RateLimit
-Header, welcher die maximale Anzahl der ausführbaren Anfragen enthält. Außerdem enthält jede Antwort einenX-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 einenX-Cache: HIT
-Header. Der Cache einer Ressource wird dann geleert, wenn einPOST
-,PUT
- oderDELETE
-Request an dieselbe URI gesendet wird, oder bei einemGET
-Request einCache-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
Documentation For Models
- AcceptGDPRContractRequest
- Account
- ApplicationToken
- ApplicationTokenInput
- ApplicationTokenResponse
- Article
- ArticleArticleOptions
- ArticleArticleOptionsMainCategory
- ArticleBenefits
- ArticleBenefitsDatabase
- ArticleBenefitsDatabaseMysql
- ArticleBenefitsDnsEditor
- ArticleBenefitsDomain
- ArticleBenefitsMailAddress
- ArticleBenefitsMailBox
- ArticleBenefitsMailBoxSpamDefender
- ArticleBenefitsServer
- ArticleBenefitsServerBackup
- ArticleBenefitsServerCronJob
- ArticleBenefitsServerFtpUser
- ArticleBenefitsServerHardware
- ArticleBenefitsServerSsh
- ArticleBenefitsServerSsl
- ArticleBilling
- ArticleConfigurationData
- ArticleConfigurationDataLimits
- ArticleContract
- ArticleContractUnit
- ArticleDescription
- ArticleGroup
- ArticleOption
- ArticleOptionPrice
- ArticlePrice
- ArticlePriceDefault
- ArticleUpgradeOption
- AuthenticationRequest
- AuthenticationResponse
- BankData
- Bankdaten
- Benefit
- BenefitBenefit
- Billing
- Cancellation
- CancellationRequest
- CancellationRequestDomains
- Cart
- CartItem
- CartItemInput
- Contact
- ContactUpdateRequest
- ContactWithPhone
- Contract
- Country
- CountryName
- CreateCustomerRequest
- CreateCustomerResponse
- CreateGDPRContractRequest
- CrossSellingOption
- Customer
- CustomerAccount
- CustomerAddress
- CustomerBillingSettings
- CustomerCategory
- CustomerContactData
- CustomerContract
- CustomerContractAccount
- CustomerPartner
- CustomerPaymentSettings
- DatabaseType
- Domain
- DomainAuthCode
- DomainDeletionRequest
- DomainItem
- DomainItemInput
- DomainNameTransfer
- DomainProxy
- DomainProxyDomain
- DomainProxyExpireDate
- DomainRegistration
- Error
- FormularBody
- FormularBody1
- FormularBody2
- GDPRContact
- GDPRContract
- GDPRContractPreset
- GDPRPDF
- GDPRTom
- GuestOperatingSystem
- Handles
- HostingOrderCustomer
- Invoice
- InvoiceAmount
- InvoiceItem
- InvoiceItemQuantity
- IpAddress
- MailAck
- MailAddress
- Message
- OfferRequest
- OfferRequestArticle
- OfferRequestArticles
- OfferRequestRecipient
- OptionalContact
- OptionalContactWithPhone
- OptionalContactWithTaxID
- OrderPreUpgradeCheck
- PartnerHostingOrderRequest
- PaymentReceipt
- PaymentReceiptKind
- PaymentSettings
- PromotioncodeValidierungsanfrage
- Recommendation
- Reseller
- SendMailForGDPRContractRequest
- ShopTestAgencyOrderRequest
- Software
- SoftwareCategory
- SoftwareExtension
- SoftwareInstallation
- SoftwareInstallationDatabase
- SoftwareInstallationSoftware
- SoftwareInstallationVersion
- StorageStatistics
- StorageStatisticsAccounts
- StorageStatisticsDetails
- StorageStatisticsItem
- StorageStatisticsItemList
- StorageStatisticsMeta
- Subdomain
- SubdomainCreationBody
- TestAccountOrderRequest
- TestAgencyOrderRequest
- TestHostingOrderCustomer
- Ticket
- TicketAccount
- TicketAnswer
- TicketAnswerInput
- TicketAnswerInputAuthor
- TicketAuthor
- TicketCustomer
- TicketInput
- TicketInputAccount
- TicketInputAuthor
- TopLevelDomain
- UpdateContact
- UpgradeCase
- UploadGDPRPDFRequest
- Verifizierungsanfrage
- Verifizierungscode
- VirtualAccount
- VirtualAccountInput
- VirtualAccountOutput
- VisitorStatistics
- VisitorStatisticsLimit
- VisitorStatisticsLimitArticle
- VisitorStatisticsThrottling
- VisitorStatisticsVisitorInformation
- VisitorStatisticsVisitorInformationDaily
- Webhook
- WebhookParameter
Documentation For Authorization
All endpoints do not require authorization.