API-Dokumentation
Ab Impressum Plus Version 1.1.0 kann die REST-API von WordPress verwendet werden, um Daten aus Impressum Plus abzufragen oder zu ändern.
Authentifizierung
Impressum Plus bringt eine integrierte Basic-Authentifizierung mit. Diese funktioniert entweder über das Format Benutzername:Passwort
oder über einen Token, der aus der Base64-Checksumme des Strings Benutzername:Passwort
besteht. Dabei ist Benutzername
immer der Benutzername eines Administrator-Benutzerkontos und Passwort
dessen Passwort.
Beispiel:
curl -i -H "Authorization: Basic QmVudXR6ZXJuYW1lOlBhc3N3b3J0" https://www.domain.tld/wp-json/impressum-plus/v1/all
Code-Sprache: Bash (bash)
Struktur
Die WordPress-REST-API liefert immer eine JSON-formatierte Zeichenkette zurück.
Fehlerbehandlung
Impressum Plus nutzt die in WordPress integrierte Fehlerbehandlung für REST-API-Aufrufe. Diese besteht immer aus einem Fehlercode und einer Fehlernachricht. Optional sind weitere Daten, wie beispielsweise ein Statuscode.
Beispiel rest_not_found
:
{
"code": "rest_not_found",
"message": "Option "test" existiert nicht.",
"data": {
"status": 404
}
}
Code-Sprache: JSON / JSON mit Kommentaren (json)
GET-Requests
Impressumsdaten
Um Impressumsdaten per API zu beziehen, lautet die URL-Struktur:
/wp-json/impressum-plus/v1/<option>
Code-Sprache: Bash (bash)
<option>
kann folgende Zeichenkette sein:
all
– Gibt alle vorhandenen Werte des Impressums zurückcountry
– Gibt das Land zurücklegal_entity
– Gibt die Rechtsform zurückname
– Gibt den Namen zurückaddress
– Gibt die Adresse zurückaddress_alternative
– Gibt die alternative Adresse zurückemail
– Gibt die E-Mail-Adresse zurückphone
– Gibt die Telefonnummer zurückfax
– Gibt die Faxnummer zurückpress_law_person
– Gibt die verantwortliche Person für den Inhalt nach § 55 Abs. 2 RStV zurückvat_id
– Gibt die Umsatzsteuer-ID zurückcoverage
– Gibt den Geltungsbereich zurückfree_text
– Gibt den Freitext zurückinspecting_authority
– Gibt die Aufsichtsbehörde zurückregister
– Gibt das Register zurückbusiness_id
– Gibt die Wirtschafts-Identifikationsnummer zurückrepresentative
– Gibt den/die Vertretungsberechtigte/n zurückcapital_stock
– Gibt das Grundkapital zurückpending_deposits
– Gibt die Ausstehenden Anlagen zurückprofessional_association
– Gibt die Berufsgenossenschaft zurücklegal_job_title
– Gibt die Gesetzliche Berufsbezeichnung zurückprofessional_regulations
– Gibt die Berufsrechtliche Regelungen zurückpress_law_checkbox
– Gibt 1 zurück, wenn journalistischer/redaktioneller Inhalt vorhanden istdata_protection_officer_name
– Gibt den Namen des Datenschutzbeauftragten zurückdata_protection_officer_address
– Gibt die Adresse des Datenschutzbeauftragten zurückdata_protection_officer_email
– Gibt die E-Mail-Adresse des Datenschutzbeauftragten zurückdata_protection_officer_phone
– Gibt die Telefonnummer des Datenschutzbeauftragten zurücksocial_media_facebook
– Gibt das Facebook-Profil zurücksocial_media_instagram
– Gibt das Instagram-Profil zurücksocial_media_pinterest
– Gibt das Pinterest-Profil zurücksocial_media_twitter
– Gibt das Twitter-Profil zurück
Beispiel:
{
"country": "<string>",
"legal_entity": "<string>",
"name": "<string>",
"address": "<string>",
"address_alternative": "<string>",
"email": "<string>",
"phone": "<string>",
"fax": "<string>",
"press_law_person": "<string>",
"vat_id": "<string>",
"coverage": "<string>",
"free_text": "<string>",
"inspecting_authority": "<string>",
"register": "<string>",
"business_id": "<string>",
"representative": "<string>",
"capital_stock": "<string>",
"pending_deposits": "<string>",
"professional_association": "<string>",
"legal_job_title": "<string>",
"professional_regulations": "<string>",
"press_law_checkbox": "<string>",
"data_protection_officer_name": "<string>",
"data_protection_officer_address": "<string>",
"data_protection_officer_email": "<string>",
"data_protection_officer_phone": "<string>",
"social_media_facebook": "<string>",
"social_media_instagram": "<string>",
"social_media_pinterest": "<string>",
"social_media_twitter": "<string>"
}
Code-Sprache: JSON / JSON mit Kommentaren (json)
Datenschutz-Daten
Um Datenschutz-Daten per API zu beziehen, lautet die URL-Struktur:
/wp-json/impressum-plus/v1/privacy/<option>
Code-Sprache: Bash (bash)
<option>
kann folgende Zeichenkette sein:
all
– Gibt alle vorhandenen Werte der Datenschutzerklärung zurückcookie_usage
– Gibt 1 zurück, wenn Cookies genutzt werdenlogfile_days
– Gibt die Anzahl in Tagen zurück, für deren Dauer Serverlogs gespeichert werdenlogfile_ip_shortening
– Gibt 1 zurück, wenn die IP-Adressen in den Serverlogs gekürzt werdencontact_form_usage
– Gibt 1 zurück, wenn Kontaktformulare genutzt werdencomment_usage
– Gibt 1 zurück, wenn die Kommentarfunktion genutzt wirdcomment_subscription_usage
– Gibt 1 zurück, wenn Kommentare abonniert werden könnenshop_usage
– Gibt 1 zurück, wenn ein Shop-System genutzt wirdcontract_usage
– Gibt 1 zurück, wenn über die Website Verträge geschlossen werdengoogle_analytics_usage
– Gibt 1 zurück, wenn Google Analytics genutzt wirdgoogle_analytics_id
– Gibt die Google Analytics ID zurückgoogle_analytics_anonymize_ip
– Gibt 1 zurück, wenn die IP-Adressen in Google Analytics gekürzt werdengoogle_analytics_remarketing_usage
– Gibt 1 zurück, wenn Google Analytics Remarketing genutzt wirdgoogle_ads_usage
– Gibt 1 zurück, wenn Google Ads genutzt wirdgoogle_adsense_usage
– Gibt 1 zurück, wenn Google AdSense genutzt wirdgoogle_maps_usage
– Gibt 1 zurück, wenn Google Maps genutzt wirdgoogle_fonts_usage
– Gibt 1 zurück, wenn Google Fonts genutzt werdenmatomo_usage
– Gibt 1 zurück, wenn Matomo genutzt wirdmatomo_url
– Gibt die URL zur genutzten Matomo-Instanz zurückmatomo_eu_server
– Gibt 1 zurück, wenn Matomo auf Servern innerhalb der EU gehostet istmatomo_anonymize_ip
– Gibt 1 zurück, wenn die IP-Adressen in Matomo gekürzt werdenfacebook_pixel_usage
– Gibt 1 zurück, wenn der Facebook Pixel genutzt wirdad_tracking_usage
– Gibt 1 zurück, wenn Werbung mit Tracking genutzt wirdad_tracking_text
– Gibt den Datenschutz-Text von Werbeanbietern mit Tracking zurückapplicant_form_usage
– Gibt 1 zurück, wenn Formulare für Stellenangebote genutzt werdenprofiling_usage
– Gibt 1 zurück, wenn Profiling genutzt wirdhealth_data_usage
– Gibt 1 zurück, wenn Gesundheitsdaten gesammelt werdenfacebook_social_sharing_usage
– Gibt 1 zurück, wenn eine Facebook-Social-Integration genutzt wirdpinterest_social_sharing_usage
– Gibt 1 zurück, wenn eine Pinterest-Social-Integration genutzt wirdtwitter_social_sharing_usage
– Gibt 1 zurück, wenn eine Twitter-Social-Integration genutzt wirdtumblr_social_sharing_usage
– Gibt 1 zurück, wenn eine Tumblr-Social-Integration genutzt wirdnewsletter_usage
– Gibt 1 zurück, wenn ein Newsletter-System benutzt wirdnewsletter_external_usage
– Gibt den extern genutzten Newsletter-Anbieter zurück, odernone
newsletter_tracking_usage
– Gibt 1 zurück, wenn das Newsletter-System Tracking nutztamazon_partner_usage
– Gibt 1 zurück, wenn Amazon-Partner-Links genutzt werden
Beispiel:
{
"cookie_usage": "<string>",
"logfile_days": "<string>",
"logfile_ip_shortening": "<string>",
"contact_form_usage": "<string>",
"comment_usage": "<string>",
"comment_subscription_usage": "<string>",
"shop_usage": "<string>",
"contract_usage": "<string>",
"google_analytics_usage": "<string>",
"google_analytics_id": "<string>",
"google_analytics_anonymize_ip": "<string>",
"google_analytics_remarketing_usage": "<string>",
"google_ads_usage": "<string>",
"google_adsense_usage": "<string>",
"google_maps_usage": "<string>",
"google_fonts_usage": "<string>",
"matomo_usage": "<string>",
"matomo_url": "<string>",
"matomo_eu_server": "<string>",
"matomo_anonymize_ip": "<string>",
"facebook_pixel_usage": "<string>",
"ad_tracking_usage": "<string>",
"ad_tracking_text": "<string>",
"applicant_form_usage": "<string>",
"profiling_usage": "<string>",
"health_data_usage": "<string>",
"facebook_social_sharing_usage": "<string>",
"pinterest_social_sharing_usage": "<string>",
"twitter_social_sharing_usage": "<string>",
"tumblr_social_sharing_usage": "<string>",
"newsletter_usage": "<string>",
"newsletter_external_usage": "<string>",
"newsletter_tracking_usage": "<string>",
"amazon_partner_usage": "<string>"
}
Code-Sprache: JSON / JSON mit Kommentaren (json)
POST-Requests
Impressumsdaten
Um Impressumsdaten per API zu ändern, lautet die URL-Struktur:
/wp-json/impressum-plus/v1/options
Code-Sprache: Bash (bash)
Beispiel:
curl -d "country=deu&legal_entity=self" -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: Basic QmVudXR6ZXJuYW1lOlBhc3N3b3J0" -X POST https://domain.tld/wp-json/impressum-plus/v1/options
Code-Sprache: Bash (bash)
Als Rückgabewert erhält man einen JSON-String mit allen gespeicherten Impressumsdaten.
Feldtitel der Impressumsdaten
ab Version 2.3.0
Um Feldtitel der Impressumsdaten per API zu ändern, lautet die URL-Struktur:
/wp-json/impressum-plus/v1/titles
Code-Sprache: Bash (bash)
Beispiel:
curl -d "name=Individueller+Name&address=Meine+Adresse" -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: Basic QmVudXR6ZXJuYW1lOlBhc3N3b3J0" -X POST https://domain.tld/wp-json/impressum-plus/v1/options
Code-Sprache: Bash (bash)
Als Rückgabewert erhält man einen JSON-String mit allen gespeicherten Impressum-Metadaten.
{
"name": {
"name": "Individueller Name"
},
"address": {
"name": "Meine Adresse"
}
}
Code-Sprache: JSON / JSON mit Kommentaren (json)
Datenschutz-Daten
Um Datenschutz-Daten per API zu ändern, lautet die URL-Struktur:
/wp-json/impressum-plus/v1/privacy
Code-Sprache: Bash (bash)
Beispiel:
curl -d "cookie_usage=1" -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: Basic QmVudXR6ZXJuYW1lOlBhc3N3b3J0" -X POST https://domain.tld/wp-json/impressum-plus/v1/privacy
Code-Sprache: Bash (bash)
Als Rückgabewert erhält man einen JSON-String mit allen gespeicherten Datenschutz-Daten.
Serveranforderungen
Apache2
Für Apache2 bringt Impressum Plus bereits einen entsprechenden .htaccess
-Inhalt mit:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Code-Sprache: JavaScript (javascript)
Dies kann auf Wunsch auch deaktiviert werden.
nginx
Eine der folgenden Inhalte müssen in der globalen Variable $_SERVER
übergeben werden (beispielsweise über PHP-FPM):
$_SERVER['HTTP_AUTHORIZATION']
$_SERVER['REDIRECT_HTTP_AUTHORIZATION']
$_SERVER['PHP_AUTH_USER']
und $_SERVER['PHP_AUTH_PW']
Beispielkonfiguration der FastCGI-Parameter:
location ~ (?U)\.php(/.*$|$) {
fastcgi_split_path_info ^((?U).+\.php)(/.+)?$;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param PHP_AUTH_USER $remote_user if_not_empty;
fastcgi_param PHP_AUTH_PW $http_authorization if_not_empty;
fastcgi_param HTTPS $https if_not_empty;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
if (!-e $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_read_timeout 300;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
Code-Sprache: Nginx (nginx)