# Referenz für das App-Manifest Informationen zum App-Manifest, ein Index mit allen Feldern, Typen und Beschreibungen für Ihre App-Manifest-Datei. Das App-Manifest beschreibt, wie Ihre App in die Stripe-Plattform integriert wird. Jede Stripe-App benötigt eine App-Manifestdatei, die sich im Stamm der Projektverzeichnisstruktur befindet. Das App-Manifest können Sie mithilfe der [CLI von Stripe Apps](https://docs.stripe.com/stripe-apps/reference/cli.md) oder auch direkt aktualisieren. Beispielsweise können Sie eine [Berechtigung](https://docs.stripe.com/stripe-apps/reference/permissions.md) mit dem Befehl `stripe apps grant permission` hinzufügen. Alternativ können Sie zu diesem Zweck eine Berechtigungsanfrage direkt ins App-Manifest aufnehmen. Anwendungsmanifestdateien folgen immer einem bestimmten [Schema](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#schema), das auf dieser Seite beschrieben wird. #### v1-Manifest Das v1-Manifest ist eine `stripe-app.json`-Datei im Stamm des Projektverzeichnisses. ## Beispiel ```json { "id": "com.invoicing.[YOUR_APP]", "version": "1.2.3", "name": "[YOUR APP] Shipment Invoicing", "icon": "./[YOUR_APP]_icon_32.png", "sandbox_install_compatible": true, "distribution_type": "public", // or "private" (default) "stripe_api_access_type": "oauth", // or "platform" (default) or "restricted_api_key" "allowed_redirect_uris": ["https://example.com/oauth/callback"], "permissions": [ { "permission": "invoice_write", "purpose": "Allows [YOUR APP] to add shipping line items to an invoice." }, { "permission": "product_read", "purpose": "Allows [YOUR APP] to use product sizes for calculating shipping." } ], "ui_extension": { "views": [ { "viewport": "stripe.dashboard.invoice.detail", "component": "AddShipping" } ], "content_security_policy": { "connect-src": [ "https://api.example.com/a_specific_endpoint", "https://api.example.com/a_whole_subdirectory/" ], "image-src": [ "https://images.example.com/one_image.jpg", "https://images.example.com/a_whole_subdirectory/" ], "purpose": "These URLs allow the app to contact [YOUR APP] for creating shipping details and loading images of shipping partner logos" } }, "post_install_action": { "type": "external", "url": "https://example.com" }, "constants": { "API_BASE": "https://api.example.com" } } ``` ## Schema Bei Anwendungsmanifestdateien handelt es sich stets um JSON-Dateien mit den Feldern: | Feldname | Typ | Beispiele | | -------------------------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------- | | id | Slug | com.invoicing.myapp | Eine von Ihnen definierte, global eindeutige Kennung für die App. Stripe validiert diese nach der ersten Übermittlung. | | version | Zeichenfolge | 1.2.4 | Eine von Ihnen festgelegte App-Version, für deren Bezeichnung Sie ein beliebiges Format wählen können. | | name | Zeichenfolge | Meine App | Der Name, der in der Nutzeroberfläche angezeigt wird, wenn auf Ihre App verwiesen wird. Öffentlich vertriebene Apps sollten nicht die Wörter „Stripe“, „App“, „kostenlos“ oder „kostenpflichtig“ enthalten. | | icon | Zeichenfolge | ./favicon.png | Der relative Pfad innerhalb des App-Pakets zu einem 300x300 Pixel großen PNG-Icon, das neben der Zuordnung angezeigt werden soll. | | distribution_type | „öffentlich“ | „privat“ | „öffentlich“ | Der [Verteilungstyp](https://docs.stripe.com/stripe-apps/distribution-options.md) der App. | | sandbox_install_compatible | true | false | true | Aktivieren Sie [Sandbox-Installationen](https://docs.stripe.com/stripe-apps/enable-sandbox-support.md) für die App. | | stripe_api_access_type | „Plattform“ | „oauth“ | „restricted_api_key“ | oauth | Die [API-Authentifizierungsmethode](https://docs.stripe.com/stripe-apps/api-authentication.md) Ihrer App. | | allowed_redirect_uris | Array | | Die URLs, auf die Nutzer/innen nach der Installation Ihrer App mit OAuth oder mit einem Installationslink umgeleitet werden. | | permissions | Array<[PermissionRequest](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#permissionrequest)\> | | Die für das Funktionieren der App erforderlichen Berechtigungen. | | ui_extension | [UIExtensionManifest](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#uiextensionmanifest) | | Spezielle Konfiguration für die Funktion „UI Extension”. | | post_install_action | [PostInstallAction](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#postinstallaction) | | Eine optionale Konfiguration, um Nutzer/innen nach der Installation einer App an einen benutzerdefinierten Standort weiterzuleiten. | | constants | Objekt | `{"API_BASE": "https://api.example.com/v1"}` | Ein Objekt mit willkürlichen konstanten Werten, auf das Sie in den [Kontexteigenschaften der Nutzeroberflächenerweiterung](https://docs.stripe.com/stripe-apps/reference/extensions-sdk-api.md#props) zugreifen [für die lokale Entwicklung mit dem CLI-Manifest-Flag außer Kraft setzen](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#extended-manifest) können. | ### PermissionRequest Berechtigungsanfragen enthalten die folgenden Felder: | Feldname | Typ | Beispiel | | ------------ | ------------------------------------ | ----------------------------------------------------------------------------------------------- | | Berechtigung | Zeichenfolge | customer_write | Berechtigungen, die die App anfordert. [Erfahren Sie mehr über Berechtigungen](https://docs.stripe.com/stripe-apps/reference/permissions.md). | | purpose | Zeichenfolge | Karte | „Diese App lädt Bilder von images.example.com.“ | Ein Hinweis für die Nutzer/innen, mit dem während der Installation über den Zweck der erforderlichen Berechtigungen informiert wird. | | name | Zeichenfolge | “Wird von [YOUR APP] benötigt, um Rechnungen anhand der ausgewählten Versandkosten anzupassen.” | Ein Hinweis für Stripe, mit dem bei der App-Prüfung über den Zweck der erforderlichen Berechtigungen informiert wird. | ### UiExtensionManifest Manifeste zu Erweiterungen der Nutzeroberfläche weisen stets diese Felder auf: | Feldname | Typ | Beispiel | | ----------------------- | -------------------------------------------------------------------------------------------------- | -------- | | views | Array<[ViewManifest](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#viewmanifest)\> | | React-Komponenten, die an einer bestimmten Stelle im Dashboard angezeigt werden. [Mehr erfahren](https://docs.stripe.com/stripe-apps/design.md#types-of-views). | | content_security_policy | [CSPRequest](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#csprequest) | | Anfrage Ihrer Benutzeroberflächenerweiterung auf Zugang zu bestimmten URLs für einen bestimmten Zweck. | ### ViewManifest Ansichtsmanifeste enthalten diese Felder: | Feldname | Typ | Beispiel | | ---------------- | ------------ | ------------------------------- | | Darstellungsfeld | Zeichenfolge | stripe.dashboard.invoice.detail | Eine Kennung, die angibt, wo eine Erweiterung der Nutzeroberfläche im Dashboard angezeigt werden kann. Siehe die [Liste der verfügbaren Darstellungsbereiche](https://docs.stripe.com/stripe-apps/reference/viewports.md). | | component | Zeichenfolge | AddShippingSelector | Eine exportierte React-Komponente, die eine unserer [Ansichtskomponenten](https://docs.stripe.com/stripe-apps/components.md#views) nutzt. | ### CSPRequest Anfragen zu Content-Sicherheitsrichtlinien weisen diese Felder auf: | Feldname | Typ | Beispiel | | ----------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | | connect-src | Array | https://o0.ingest.sentry.io/api/ | URLs zulässiger Drittanbieter-APIs. Endet die URL mit einem Schrägstrich, erhalten auch alle untergeordneten URLs die Berechtigung. Siehe auch [Nutzung von Drittanbieter-APIs](https://docs.stripe.com/stripe-apps/build-ui.md#use-third-party-apis). | | image-src | Array | https://images.example.com/ | URLs, von denen die [Img](https://docs.stripe.com/stripe-apps/components/img.md)-Komponente geladen werden kann. Endet die URL mit einem Schrägstrich, erhalten auch alle untergeordneten URLs die Berechtigung. | | purpose | Zeichenfolge | Karte | „Diese App lädt Bilder von https://images.example.com und sendet für die Fehlerbehebung anonyme Fehlerberichte an unseren Partner Sentry.“ | Eine Erklärung, die Nutzer/innen nach Installation der App angezeigt wird und erläutert, warum das Plugin mit diesen URLs direkt kommunizieren muss. | URLs müssen die [CSP-Anforderungen](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) erfüllen. Zulässig sind ausschließlich HTTPS-Schemata. Informationen zur Nutzung und Fehlerbehebung finden Sie unter [Drittanbieter-APIs verwenden](https://docs.stripe.com/stripe-apps/build-ui.md#use-third-party-apis). ### PostInstallAction Eine Aktion nach der Installation umfasst die folgenden Felder: | Feldname | Typ | Beispiel | | -------- | ------------ | ---------------------- | | Typ | Zeichenfolge | `external`, `settings` | Zusätzliche Aktion, nachdem Nutzer/innen Ihre App auf dem Stripe-Dashboard installiert haben. Weitere Informationen finden Sie unter [Konfiguration nach der Installation aktivieren](https://docs.stripe.com/stripe-apps/post-install-actions.md). | | url | Zeichenfolge | https://example.com | Externe URL, an die Nutzer/innen nach der Installation Ihrer App weitergeleitet werden. Dies ist nur erforderlich, wenn der Aktionstyp nach der Installation `external` ist. | #### v2-Manifest Das v2-Manifest ist eine `stripe-app.yaml`-Datei im Stamm des Projektverzeichnisses. Führen Sie `stripe apps migrate` aus, um eine bestehende App von v1 auf v2 zu migrieren. ## Beispiel ```yaml id: com.invoicing.YOUR_APP version: 1.2.3 name: YOUR APP Shipment Invoicing icon: icons/icon.png declarations: distribution_type: public stripe_api_access: permissions: - permission: invoice_write purpose: Allows YOUR APP to add shipping line items to an invoice. - permission: product_read purpose: Allows YOUR APP to use product sizes for calculating shipping. stripe_api_access_type: oauth allowed_redirect_uris: - https://example.com/oauth/callback post_install_action: type: external url: https://example.com constants: API_BASE: https://api.example.com ui_extension: views: - viewport: stripe.dashboard.invoice.detail component: AddShipping content_security_policy: connect-src: - https://api.example.com/a_specific_endpoint - https://api.example.com/a_whole_subdirectory/ image-src: - https://images.example.com/one_image.jpg - https://images.example.com/a_whole_subdirectory/ purpose: >- These URLs allow the app to contact YOUR APP for creating shipping details and loading images of shipping partner logos extensions: [] ``` ## Schema Das v2-Manifest ist eine YAML-Datei. Erforderliche Felder sind `id`, `name`, `version` und `extensions`. | Feldname | Typ | Beispiele | | ------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------- | | id | Zeichenfolge | com.invoicing.myapp | Eine von Ihnen definierte, weltweit eindeutige Kennung für Ihre App. Muss mit einem alphanumerischen Zeichen beginnen und enden. Stripe validiert sie bei der ersten Übermittlung. | | version | Zeichenfolge | 1.2.4 | Eine von Ihnen festgelegte App-Version, für deren Bezeichnung Sie ein beliebiges Format wählen können. | | name | Zeichenfolge | Meine App | Der Name, der in der Nutzeroberfläche angezeigt wird, wenn auf Ihre App verwiesen wird. | | icon | Zeichenfolge | icons/icon.png | Pfad zu einem 300x300 Pixel großen PNG-Bild für Ihre App im App-Marktplatz. | | declarations | [Erklärungen](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-declarations) | | Übergeordnete Erklärungen zur App, einschließlich Bereitstellungstyp, API-Zugriff und Berechtigungen. | | ui_extension | [UIExtension](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-uiextension) | | Konfiguration für die Nutzeroberfläche, Berechtigungen und das Verhalten der App im Stripe-Dashboard. | | extensions | Array<[Extension](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-extension)\> | | Liste der von der App bereitgestellten Erweiterungen. Erforderlich (kann leer sein). | | custom_object_definitions | [CustomObjectDefinitions](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-customobjectdefinitions) | | Von der App bereitgestellte individuelle Objektdefinitionen. | ### Erklärungen | Feldname | Typ | Beispiel | | -------------------------- | ------------------------------------------------------------------------------------------------------- | ---------------------------------------- | | distribution_type | „öffentlich“ | „privat“ | „öffentlich“ | Der [Verteilungstyp](https://docs.stripe.com/stripe-apps/distribution-options.md) der App. | | stripe_api_access | Objekt | | Berechtigungen für die App. Enthält `permissions` und optional `connect_permissions`, jeweils ein Array mit [Berechtigungen](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-permission). | | stripe_api_access_type | „default“ | „restricted_api_key“ | „oauth“ | „platform“ | „oauth“ | Die [API-Authentifizierungsmethode](https://docs.stripe.com/stripe-apps/api-authentication.md) Ihrer App. | | sandbox_install_compatible | true | false | true | Aktivieren Sie [Sandbox-Installationen](https://docs.stripe.com/stripe-apps/enable-sandbox-support.md) für die App. | | post_install_action | [PostInstallAction](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-postinstallaction) | | Eine optionale Konfiguration, um Nutzer/innen nach der Installation einer App an einen benutzerdefinierten Ort weiterzuleiten. | | constants | Objekt | `{API_BASE: https://api.example.com/v1}` | Benutzerdefinierte Werte, die über Kontexteigenschaften an Ihre Ansichten übergeben werden. | | allowed_redirect_uris | Array | | Eine Liste zulässiger URLs, an die Nutzer/innen nach erfolgreicher Installation weitergeleitet werden können. | ### Berechtigung | Feldname | Typ | Beispiel | | ---------- | ------------ | ----------------------------------------------- | | permission | Zeichenfolge | customer_write | Die ID der Berechtigung. [Erfahren Sie mehr über Berechtigungen](https://docs.stripe.com/stripe-apps/reference/permissions.md). | | purpose | Zeichenfolge | „Diese App lädt Bilder von images.example.com.“ | Der Grund für das Anfordern der Berechtigung. | ### UIExtension | Feldname | Typ | Beispiel | | ----------------------- | ----------------------------------------------------------------------------------------------------- | -------- | | views | Array<[ViewManifest](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-viewmanifest)\> | | Konfigurieren Sie, wo die App im Dashboard angezeigt wird. | | content_security_policy | [CSPRequest](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-csprequest) | | Konfigurieren Sie die Inhaltssicherheitsrichtlinie für Ihre App. | ### ViewManifest | Feldname | Typ | Beispiel | | ---------------- | ------------ | ------------------------------- | | Darstellungsfeld | Zeichenfolge | stripe.dashboard.invoice.detail | Eine Kennung, die angibt, wo eine Erweiterung der Nutzeroberfläche im Dashboard angezeigt wird. Siehe die [Liste der verfügbaren Darstellungsfelder](https://docs.stripe.com/stripe-apps/reference/viewports.md). | | component | Zeichenfolge | AddShipping | Der Name der zu rendernden React-Komponente im Verzeichnis `src/views`. | ### CSPRequest | Feldname | Typ | Beispiel | | ----------- | ------------- | ------------------------------------------------------- | | connect-src | Array | https://o0.ingest.sentry.io/api/ | URLs zulässiger Drittanbieter-APIs. Endet die URL mit einem Schrägstrich, erhalten auch alle untergeordneten URLs die Berechtigung. Siehe auch [Nutzung von Drittanbieter-APIs](https://docs.stripe.com/stripe-apps/build-ui.md#use-third-party-apis). | | image-src | Array | https://images.example.com/ | URLs, von denen die [Img](https://docs.stripe.com/stripe-apps/components/img.md)-Komponente laden kann. Wenn die URL mit einem Schrägstrich endet, sind auch alle nachstehenden Pfade zulässig. | | purpose | Zeichenfolge | „Diese App lädt Bilder von https://images.example.com.” | Eine Meldung, die Nutzerinnen und Nutzern angezeigt wird, wenn die App installiert ist, und erklärt, warum die App mit externen URLs kommunizieren muss. | ### PostInstallAction | Feldname | Typ | Beispiel | | -------- | ------------ | --------------------------------------------- | | Typ | Zeichenfolge | `external`, `modal`, `onboarding`, `settings` | Zusätzliche Aktion, nachdem Nutzer/innen Ihre App auf dem Stripe-Dashboard installiert haben. Weitere Informationen finden Sie unter [Konfiguration nach der Installation aktivieren](https://docs.stripe.com/stripe-apps/post-install-actions.md). | | url | Zeichenfolge | https://example.com | Externe URL, an die Nutzer/innen nach der Installation Ihrer App weitergeleitet werden. Nur erforderlich, wenn der `type` `external` ist. | ### Erweiterung Jeder Eintrag im `extensions`-Array beschreibt eine von der App implementierte Erweiterung des Scripts. | Feldname | Typ | Beispiel | | -------------- | ------------------------------------------------------------------------------------------------- | ------------------------ | | id | Zeichenfolge | my-extension | Eine eindeutige Kennung für die Erweiterung innerhalb der App. | | name | Zeichenfolge | Meine Erweiterung | Der Anzeigename der Erweiterung. | | description | Zeichenfolge | | Eine optionale, von Entwickler/innen festgelegte Beschreibung (max. 300 Zeichen). | | interface_id | Zeichenfolge | billing.sales.prorations | Die Kennung der Erweiterungsschnittstelle, die diese Erweiterung implementiert. | | version | Zeichenfolge | 0.1.0 | Die semantische Version der Erweiterung. | | stripe_version | Zeichenfolge | 20.06.2024 | Die Version der Stripe-API, die für diese Erweiterung verwendet werden soll. | | permissions | Array<[Permission](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-permission)\> | | Von der Erweiterung benötigte Berechtigungen. | | script | [ScriptConfig](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-scriptconfig) | | Scriptkonfiguration für die Erweiterung. | | configuration | [CustomInput](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-custominput) | | Benutzerdefiniertes Eingabeschema und Nutzeroberfläche für die Erweiterung. | | methods | Objekt | | Von der Erweiterung implementierte Methoden. Schlüssel sind Methodennamen; Werte sind [MethodConfig](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-methodconfig)-Objekte. | | endpoints | Array<[Endpoint](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-endpoint)\> | | Von der Erweiterung bereitgestellte Endpoints. | ### ScriptConfig | Feldname | Typ | Beispiel | | -------- | ------------ | ------------ | | Typ | „typescript“ | „typescript“ | Der Scripttyp. | | content | Zeichenfolge | | Der Inhalt oder Einstiegspunkt des Scripts. | ### CustomInput | Feldname | Typ | Beispiel | | ------------ | ------ | -------- | | input_schema | Objekt | | Die Definition des Eingabeschemas. Erfordert `type: "json_schema"` und `content` (Pfad zu einer `.json`-Datei). | | ui_schema | Objekt | | Die Definition des Nutzeroberflächen-Schemas im JSONForms-Format. Erfordert `type: "jsonforms"` und `content` (Pfad zu einer `.json`-Datei). | ### MethodConfig Jeder Methodenwert ist einer der folgenden: **Script-Implementierung:** | Feldname | Typ | Beispiel | | ------------------- | ----------------------------------------------------------------------------------------------------------- | -------- | | implementation_type | „script“ | „script“ | Die Art der Implementierung. | | custom_input | [CustomInput](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-custominput) | | Benutzerdefiniertes Eingabeschema und Nutzeroberfläche für diese Methode. | | errors | Array<[ErrorDefinition](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-errordefinition)\> | | Strukturierte Fehlermeldungen für diese Methode. | **Implementierung von Remote-Funktionen:** | Feldname | Typ | Beispiel | | ------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------- | | implementation_type | „remote_function“ | „remote_function“ | Die Art der Implementierung. | | endpoint_id | Zeichenfolge | | Die ID des Endpoints, der für diese Methode aufgerufen werden soll. | | resource_id | Zeichenfolge | | Die ID der zu verwendenden verwalteten Ressource. | | sandbox_resource_id | Zeichenfolge | | Die ID der verwalteten Ressource, die in Sandbox-Umgebungen verwendet werden soll. | | errors | Array<[ErrorDefinition](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-errordefinition)\> | | Strukturierte Fehlermeldungen für diese Methode. | ### ErrorDefinition | Feldname | Typ | Beispiel | | --------- | --------------- | --------------------------- | | Code | Zeichenfolge | invalid_amount | Maschinenlesbare Fehlerkennung. Muss innerhalb der Methode eindeutig sein und snake_case verwenden. | | message | Zeichenfolge | „Betrag muss positiv sein.“ | Vorlage für von Menschen lesbare Nachrichten. | | retryable | Boolescher Wert | false | Gibt an, ob die aufrufende Person bei diesem Fehler einen Wiederholungsversuch unternehmen soll. Der Standardwert lautet `false`. | ### Endpoint | Feldname | Typ | Beispiel | | --------------- | --------------------------------------------------------------------------------------------------------- | ------------- | | id | Zeichenfolge | my-endpoint | Eine eindeutige Kennung für den Endpoint innerhalb der Erweiterung. | | Typ | „stripe_function“ | „custom_http“ | „custom_http“ | Der Typ des Endpoints. | | live | [EndpointDefinition](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-endpointdefinition) | | Konfiguration für die Live-Umgebung. | | managed_sandbox | [EndpointDefinition](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-endpointdefinition) | | Konfiguration für die verwaltete Sandbox-Umgebung. | | test | [EndpointDefinition](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-endpointdefinition) | | Konfiguration für die Testumgebung. | ### EndpointDefinition | Feldname | Typ | Beispiel | | -------- | --------------------------------------------------------------------------------------------- | ---------------------------------------------------- | | url | Zeichenfolge | https://api.example.com/handler | Die HTTPS-URL des Endpoints. | | purpose | Zeichenfolge | „Verarbeitet Anfragen für anteilmäßige Verrechnung.“ | Der Zweck des Endpoints. | | auth | [EndpointAuth](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#v2-endpointauth) | | Authentifizierungskonfiguration für den Endpoint. | ### EndpointAuth | Feldname | Typ | Beispiel | | ----------- | ------------------------- | -------------- | | Typ | „bearer_token“ | „header“ | „bearer_token“ | Die Art der Authentifizierung. | | secret_name | Zeichenfolge | my-api-key | Der Name des Geheimnisses, das die Authentifizierungsdaten enthält. | | header_name | Zeichenfolge | X-Api-Key | Der Name des Headers, der für die Authentifizierung verwendet werden soll. Erforderlich, wenn der `type` `„header“` ist. | ### CustomObjectDefinitions | Feldname | Typ | Beispiel | | ----------- | ------------- | -------- | | definitions | Array | | Liste der benutzerdefinierten Objektdefinitionen. Jeder Eintrag erfordert eine `id` (Zeichenfolge) und ein `specification`-Objekt mit dem `type: "typescript"` und einem `content`-Pfad zur Spezifikationsdatei. | ## Verwenden Sie eine erweiterte Manifest-Datei für die Entwicklung Während der lokalen Entwicklung müssen Sie möglicherweise andere Werte für das *App-Manifest* (In a Stripe App, the app manifest is a stripe-app.json file in your app's root directory. It defines your app's ID, views, permissions, and other essential properties) verwenden als in der Produktion. Beispielsweise könnte sich das Backend Ihrer App unter `https://api.example.com/v1` befinden, während Ihr lokales Entwicklungs-Backend unter `http://localhost:8888/v1`. läuft Folgendes Beispiel für eine Manifest-Datei: ```json { "id": "com.invoicing.[YOUR_APP]", "version": "1.2.3", "name": "[YOUR APP] Shipment Invoicing", "icon": "./[YOUR_APP]_icon_32.png", "permissions": [], "ui_extension": { "views": [ { "viewport": "stripe.dashboard.invoice.detail", "component": "InvoiceDetail" } ], "content_security_policy": { "connect-src": ["https://api.example.com/v1"], "purpose": "Allow the app to retrieve example data" } }, "constants": { "API_BASE": "https://api.example.com/v1" } } ``` Erstellen Sie eine weitere Manifestdatei mit dem Namen `stripe-app.[anything].json`, die Ihr Hauptmanifest erweitert und mit lokalen Werten überschreibt. Zum Beispiel: ```json { "extends": "stripe-app.json", "ui_extension": { "content_security_policy": { "connect-src": ["http://localhost:8888/v1"] } }, "constants": { "API_BASE": "http://localhost:8888/v1" } } ``` Um die lokale Manifestdatei während der Entwicklung zu verwenden, laden Sie sie mit dem Flag `--manifest`. Zum Beispiel: ```bash stripe apps start --manifest stripe-app.dev.json ``` Greifen Sie mithilfe von [Kontext-Props](https://docs.stripe.com/stripe-apps/reference/extensions-sdk-api.md#props) auf die `constants`-Werte in Ihren Ansichten zu. Zum Beispiel: ```jsx import {useEffect, useState} from 'react'; import type {ExtensionContextValue} from '@stripe/ui-extension-sdk/context'; import {Box} from '@stripe/ui-extension-sdk/ui'; const InvoiceDetail = ({environment}: ExtensionContextValue) => { const [data, setData] = useState(null); useEffect(() => { fetch(`${environment.constants.API_BASE}/some-endpoint`) .then(response => response.json()) .then(json => setData(json)); }, []); return data ? Here is your message: {data.message} : 'Loading...'; }; ``` ## See also - [Dokumentation zur Stripe CLI](https://docs.stripe.com/stripe-apps/reference/cli.md) - [Dokumentation zu Berechtigungen](https://docs.stripe.com/stripe-apps/reference/permissions.md) - [Funktionsweise von Nutzeroberflächen-Erweiterungen](https://docs.stripe.com/stripe-apps/how-ui-extensions-work.md)