Axios Sekundärkapselungsbeispiel Demo im Projekt

Axios Sekundärkapselungsbeispiel Demo im Projekt

1. Warum verpacken?

Erleichtert das Aufrufen von Codes, die öffentliche Verarbeitung von Anfragen und die personalisierte Anpassung

2. Andere haben schon viel gekapselt, warum nicht einfach modifizieren und verwenden?

  • Die Verpackungsidee ist nicht für das eigene Vorhaben geeignet
  • Unbequemer Anruf nach der Kapselung

3. Persönliche Verpackungsdemo

Codestruktur [basierend auf vue]

Grundgedanke

Speichern Sie alle Anforderungsschnittstellenadressen nach Modulen entsprechend den Dateien, z. B. Anforderung/Modul/Benutzerbenutzerinformationen im Zusammenhang mit dem Modul [Dienst].

2. Kapselungsmethoden und -klassen. Binden Sie allgemeine Anforderungsmethoden an alle Anforderungen und verarbeiten Sie Pfadparameter an die Anforderungs-URL.

generateServer.js

Server aus „../util/axiosConfig“ importieren;
// Ändern Sie die Grundkonfiguration von Axios und fordern Sie die Konfigurationsfunktion request({ an.
  URL (URL = URL = URL),
  Methode = "get",
  AbfrageParm = {},
  Körper = {},
  PfadParm = null,
  Konfiguration = {},
}) {
  const configAxios = {
    Verfahren,
    ...Konfiguration,
    URL: DealRequestUrl (URL, Pfadparameter),
  };
  Schalter (Methode) {
    Fall "erhalten":
      configAxios.params = AbfrageParm;
      brechen;

    Standard:
      //Anforderungsmethoden „PUT“, „POST“ und „PATCH“
      configAxios.data = Text;
      brechen;
  }
  console.log('configAxios', configAxios)
  Server zurückgeben (configAxios);
}

Funktion dealRequestUrl(url, pathParm) {
  wenn (!PfadParm) URL zurückgeben;
  lass dealurl = url;
  Objekt.Schlüssel(PfadParm).fürJeden((ele) => {
    dealurl = dealurl.replace(`{${ele}}`, PfadParm[ele]);
  });
  Deal-URL zurückgeben;
}
Klasse GenerateServer {
  Konstruktor(URL) {
    diese.url = URL;
  }
  getdata(parm) {
    console.log('parm', parm)
    Rückgabeanforderung ({... parm, Methode: "get", URL: diese.URL});
  }
  postdata(parm) {
    Anfrage zurückgeben({ ...parm, Methode: "post", URL: diese.URL });
  }
  gelöschteDaten(Parameter) {
    Rückgabeanforderung ({... Parm, Methode: "Löschen", URL: diese.URL});
  }
}
Standard-GenerateServer exportieren;

3. Das Ganze freilegen

verwenden

    importiere { userInfoServer } aus "./request";
    .
    .
    .

    // Anfrage senden userInfoServer.getUserName
      .getdata({
        AbfrageParm: {
          ID: 223,
        },
      })
      .then((res) => {
        Konsole.log("res", res);
      });
    // Anfrage senden userInfoServer.getUserName
      .postdata({
        Körper: {
          ID: 223,
        },
      })
      .then((res) => {
        Konsole.log("res", res);
      });
    // Senden Sie eine Get-Anfrage mit dem Anfragepfad, der den Parameter userInfoServer.getUserList enthält
      .getdata({
        AbfrageParm: {
          ID: 223,
        },
        PfadParm: {
          ID: 567,
        },
      })
      .then((res) => {
        Konsole.log("res", res);
      });

Zusammenfassen:

Die obige Kapselung dient hauptsächlich dazu, die Anforderung detaillierter aufzuteilen, um die Wartung zu erleichtern. Auch während der Entwicklung ist es praktischer. Für neue Schnittstellenanforderungen müssen Sie lediglich die URL-Konfiguration und die Antwortgenerator-Konfiguration im entsprechenden Modul hinzufügen. Anschließend können Sie die Anfrage im Geschäftscode weiterverarbeiten. Die Pfadparameter und Anforderungstextparameter sind gekapselt, sodass Sie sich bei ihrer Verwendung nicht um die entsprechende Konfiguration kümmern müssen.

Der obige Code verarbeitet keine Datei-Uploads, ruft keine Anforderungsparameterzeichenfolgen ab usw. Fügen Sie aber einfach die Konfiguration in den entsprechenden Axios hinzu. Leicht zu pflegen.

Dies ist das Ende dieses Artikels über die Sekundärverpackung von Axios im Projekt. Weitere relevante Inhalte zur Sekundärverpackung von Axios finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Git-Code: git

Das könnte Sie auch interessieren:
  • Ein Beispiel für die sekundäre Kapselung von Axios in Vue
  • Detaillierte Erklärung zur Verwendung der sekundären Vue-Kapselung Axios als Plug-In
  • Beispielcode für die Sekundärverpackung von Vue Axios
  • Detaillierte Erläuterung der sekundären Kapselung von Vue Axios
  • Implementierung der sekundären Kapselung von Vue Axios basierend auf gängigen Geschäftsszenarien

<<:  Detaillierte Erklärung zur Installation von PHP7 unter Linux

>>:  Ausführliche Erklärung des Maximalwerts von int in MySQL

Artikel empfehlen

Shtml Kurzanleitung

Shtml und asp sind ähnlich. In Dateien mit dem Nam...

Implementierungscode für den MySQL-Protokolltrigger

SQL-Anweisung DROP-TRIGGER WENN EXISTIERT sys_men...

TypeScript-Aufzählungstypen im Detail erklären

Inhaltsverzeichnis 1. Digitale Aufzählung 2. Zeic...

Detailliertes Tutorial zur Installation von mysql5.7.18 auf centos7.3

1 Überprüfen Sie die Linux-Distributionsversion [...

TortoiseSvn Little Turtle Installation Neuestes ausführliches Grafik-Tutorial

Bei der Installation von tortoiseGit gab es immer...

Wie verstecke ich einen bestimmten Text in HTML?

Code zum Ausblenden von Text, Ausblenden eines bes...

Eine kurze Erläuterung des zugrunde liegenden Prinzips von MySQL Join

Inhaltsverzeichnis Join-Algorithmus Der Unterschi...

Detaillierte Erklärung, wie Komponenten in React kommunizieren

1. Was ist Wir können die Kommunikation zwischen ...

Tipps zum Gestalten der Fotovorschau-Navigation auf Webseiten

<br />Navigation bezieht sich nicht nur auf ...

Analyse der Vorteile von path.join() in Node.js

Sie fragen sich möglicherweise, warum Sie die Met...

Detaillierte Erklärung zur Konfiguration der OpenGauss-Datenbank im Docker

Für Windows-Benutzer Verwenden von openGauss in D...

Webdatenspeicherung: Cookie, UserData, SessionStorage, WebSqlDatabase

Plätzchen Dies ist eine Standardmethode zum Speic...