Technologieaustausch

Einführung in Projekt-/Codespezifikationen und Apifox

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Inhaltsverzeichnis

Inhaltsverzeichnis

1. Projektspezifikationen:

(1) Projektstruktur:

(2) Übertragenes Datenobjekt

2. Code-Spezifikationen:

(1) Datenbankbenennungskonvention:

(2) Anmerkungsspezifikationen:

(3) Namensvorgaben:

(4) Front-End- und Back-End-Spezifikationen:

(5) Sonstige Spezifikationen:

3. Anwendung von Apifox:

(1) Download und Installation:

(2) Erstellen Sie ein neues Projekt und laden Sie Ihre Teamkollegen ein:

(3) Verfassen von Spezifikationen für Schnittstellendokumente

4. Debug-Funktion (muss das Backend kennen)

5. Testkategorie

6. Hinweise:

(Eine Person kann das Land nicht beherrschen!!!)


1. Projektspezifikationen:

(1) Projektstruktur:

Die konkreten sind:

(1) Entitätsschicht: Die Entitätsschicht speichert bestimmte Objektentitäten, die den Objekten in der Datenbank entsprechen.

(2) DAO-Schicht: (kann in zwei Schichten unterteilt werden (die Schnittstellenschicht des Dao und die Implementierungsschicht des Dao)) ist die Schicht, die mit der Datenbank interagiert und einige Vorgänge zum Hinzufügen, Löschen, Ändern und Abfragen der Datenbank umfasst.

(3) Serviceschicht (kann in zwei Schichten unterteilt werden (Serviceschnittstellenschicht und Serviceimplementierungsschicht)): Hauptverantwortlich für das logische Anwendungsdesign von Geschäftsmodulen.

(4) Controller-Schicht: Die Controller-Schicht ist für die Steuerung bestimmter Geschäftsmodulprozesse verantwortlich. Die Controller-Schicht ist für die Front-End- und Back-End-Interaktion verantwortlich, nimmt Front-End-Anfragen an, ruft die Service-Schicht auf und empfängt die von ihr zurückgegebenen Daten die Serviceschicht und schließlich die Rückgabe bestimmter Seiten und Daten an den Client.

(5) Util-Ebene: Die Tool-Ebene platziert häufig verwendete Tool-Klassen. Beispielsweise können einige gängige Methoden als Util-Funktion geschrieben und dann der Gesamtcode vereinfacht werden.

(6) Ausnahmeschicht: Sie können eine einheitliche Rückgabeausnahmeschicht schreiben.

(7) Filterebene: Filterebene, z. B. einheitliche Filterung der Identitätsauthentifizierung. Wenn der Filter nicht besteht, befindet er sich nur im Gastmodus.

(2) Übertragenes Datenobjekt

DTO ist die von der Front-End-Anfrage gesendete Datenstruktur.

VO ist die vom Backend als Antwort auf die vom Frontend gesendete Anfrage zurückgegebene Antwort.

PO ist die tatsächliche Entität zwischen der Objektentität und der Datenbankobjekttabelle.

BO ist die Objektentität im Geschäftsverarbeitungsprozess.

2. Code-Spezifikationen:

Bitte benennen Sie es auf Englisch, nicht auf Chinesisch Pinyin.

Seien Sie leicht verständlich und nicht ausgefallen.

Verwenden Sie Buckelnamen statt gewöhnlicher Namen.

Setzen Sie in regelmäßigen Abständen Zeilenumbrüche ein und schreiben Sie nicht in langen Absätzen.

Seien Sie kommentiert, nicht individualistisch.

Java-Sprachcodierungsspezifikation – Java-Sprachcodierungsspezifikation (chinesische Version) – Online-Dokumentation – JAVA-Programmiermaterialien Niubi Station (javanb.com)icon-default.png?t=N7T8http://doc.javanb.com/code-conventions-for-the-java-programming-language-zh/index.html#312

Verwenden Sie keine Schlüsselwörter, reservierten Wörter usw., die in Java selbst eine besondere Bedeutung haben! ! !

(1) Datenbankbenennungskonvention:

(1) Der Tabellenname ist eindeutig und mehrere Tabellennamen können nicht denselben Namen verwenden.

(2) Der Tabellenname sollte eine Kombination aus Kleinbuchstaben und Unterstrichen sein. Vermeiden Sie die Verwendung von Großbuchstaben oder Sonderzeichen. Verwenden Sie „user_info“ oder „tbl_user_info“.

(3) Kein Konflikt mit Schlüsselwörtern,Um reservierte Wörter wie „like“, „desc“, „range“, „match“, „delayed“ usw. zu deaktivieren, lesen Sie bitte die offiziellen reservierten Wörter von MySQL.

(4) Datenbankfeldname: Er besteht aus 26 englischen Buchstaben (Groß- und Kleinschreibung beachten) plus dem Unterstrich „_“, wie „user_id“, „user_name“, „user_password“, „user_register_time“, „user_login_time“.

(5) Primär- und Fremdschlüsselspezifikationen:

Der Primärschlüssel-Indexname ist pk_field-Name; der eindeutige Indexname ist uk_field-Name; der gewöhnliche Indexname ist idx_field-Name.
veranschaulichen: pk_ ist der Primärschlüssel; uk_ ist der eindeutige Schlüssel; idx_ ist die Abkürzung für index.

Primärschlüssel: pk_+Tabellenname
Zum Beispiel:pk_main
Fremdschlüssel: fk_+Slave-Tabellenname+_+Haupttabellenname
Zum Beispiel:fk_sub_main

(6) Der Dezimaltyp ist dezimal und Float und Double sind verboten.
(7) Drei notwendige Felder für die Tabelle: id, create_time, update_time.

(2) Anmerkungsspezifikationen:

(1) Klassenanmerkung:

Klassenanmerkungen (Klasse) werden hauptsächlich verwendet, um anzugeben, wofür die Klasse verwendet wird, sowie um einige Informationen wie den Ersteller, die Version des Erstellungsdatums, den Paketnamen usw. anzugeben:

/**
* @version: V1.0
* @Autor: fendo
* @className: Benutzer
* @packageName: Benutzer
* @description: Dies ist die Benutzerklasse
* @data: 2024-07-01 12:20
 **/

(2) Methodenanmerkung (Konstruktor):

Für einzeilige Kommentare innerhalb der Methode beginnen Sie eine neue Zeile über der kommentierten Anweisung und verwenden Sie // comment. Verwenden Sie /* */ für mehrzeilige Kommentare innerhalb von Methoden
Kommentare sollten am Code ausgerichtet sein. Alle abstrakten Methoden (einschließlich Methoden in Schnittstellen) müssen mit Javadoc annotiert werden. Zusätzlich zu den Rückgabewerten und Parameterausnahmebeschreibungen müssen sie auch angeben, was die Methode tut und welche Funktionen sie implementiert.Methodenannotationen (Konstruktor) können auch zur Deklaration von Parametern, Rückgaben und anderen Informationen der Klasse verwendet werden:

/**
* @Autor: fendo
* @methodsName: Benutzer hinzufügen
* @description: Einen Benutzer hinzufügen
* @param: xxxx
* @return: Zeichenfolge
* @wirft:
*/

(3) Kommentare zum Codeblock: Erläutern Sie den Zweck eines bestimmten Teils Ihres Codes

/**
* Instanziieren Sie einen Benutzer
* xxxxxxxx
 */
Benutzer Benutzer=neuer Benutzer();

(4) Einzelsatzkommentare: Kommentieren Sie Ihren individuellen Code

Benutzer user=new User(); //Instanziieren eines Benutzers

(3) Namensvorgaben:

Benennen Sie es so, dass andere es verstehen können, benennen Sie es in Kamel-Groß-/Kleinschreibung und achten Sie auf die Groß-/Kleinschreibung.

(1) Der Klassenname verwendet den UpperCamelCase-Stil:
Zum Beispiel: UserController, FileController, BookService
(2) Methodennamen, Parameternamen, Mitgliedsvariablen und lokale Variablen verwenden alle den LowerCamelCase-Stil.
Zum Beispiel: getUserName(), userLogin(), getMessage();
(3) Konstante Benennungen sollten ausschließlich in Großbuchstaben erfolgen und Wörter sollten durch Unterstriche getrennt werden. Versuchen Sie, die Semantik vollständig und klar auszudrücken, und denken Sie nicht, dass der Name zu lang ist.
Beispiel: MAX_STOCK_COUNT / CACHE_EXPIRED_TIME
(4) Der Name der abstrakten Klasse beginnt mit Abstract oder Base; der Name der Ausnahmeklasse endet mit Exception. Der Name der Testklasse beginnt mit dem Namen der zu testenden Klasse und endet mit Test.
(5) Paketnamen sollten einheitlich in Kleinbuchstaben geschrieben sein und zwischen Punkttrennzeichen sollte nur ein englisches Wort mit natürlicher Semantik stehen.Verwenden Sie Paketnamen einheitlich Ungerade Zahl Form
Formel, aber wenn der Klassenname eine Pluralbedeutung hat, kann der Klassenname die Pluralform verwenden.
(6) Benennungskonvention für Service-/DAO-Layer-Methoden:
1) Der Methode zum Abrufen eines einzelnen Objekts wird get vorangestellt.
2) Methoden zum Abrufen mehrerer Objekte werden mit dem Präfix „list“ und dem Ende mit „Plural“ versehen, z. B. „listObjects“.
3) Der Methode zum Erhalten statistischer Werte wird count vorangestellt.
4) Der Einfügemethode wird „Speichern/Einfügen“ vorangestellt.
5) Der Löschmethode wird „remove/delete“ vorangestellt.
6) Der geänderten Methode wird update vorangestellt.
(7) Namenskonvention für Domänenmodelle:
1) Datenobjekt: xxxDO, xxx ist der Name der Datentabelle.
2) Datenübertragungsobjekt: xxxDTO, xxx ist der Name, der sich auf das Geschäftsfeld bezieht.
3) Anzeigeobjekt: xxxVO, xxx ist im Allgemeinen der Name der Webseite.
(8) Zwischen allen ganzzahligen Verpackungsklassenobjekten Wertevergleich Alle verwenden zum Vergleich die Methode „equals“.
veranschaulichen: Für Integer var = ? in -128 bis 127 Die Zuweisung zwischen Integer-Objekten wird in IntegerCache.cache generiert und vorhandene Integer-Werte in diesem Bereich können direkt mit == beurteilt werden, aber alle Daten außerhalb dieses Bereichs werden nicht auf dem Heap generiert
Dies ist eine große Gefahr bei der Verwendung vorhandener Objekte. Es wird empfohlen, zur Beurteilung die Gleichheitsmethode zu verwenden.
(9) Um die Äquivalenz zwischen Gleitkommazahlen zu beurteilen, können Basisdatentypen nicht mit == verglichen werden, und umschlossene Datentypen können nicht mit Gleichheit beurteilt werden. Der BigDecimal-Gleichheitsvergleich sollte die Methode „compareTo()“ anstelle der Methode „equals()“ verwenden
Positives Beispiel:
(1) Geben Sie einen Fehlerbereich an. Wenn die Differenz zwischen zwei Gleitkommazahlen innerhalb dieses Bereichs liegt, werden sie als gleich betrachtet.
schweben A = 1,0F - 0,9F ;
schweben B = 0,9F - 0,8F ;
schweben Unterschied = 1e-6F ;
Wenn ( Mathematik . Abs ( A - B ) < Unterschied ) {
System . aus . drucken ( "WAHR" );
}
(2) Verwenden Sie BigDecimal, um den Wert zu definieren, und führen Sie dann Gleitkommazahlenoperationen aus.
BigDecimal a = neu Große Dezimalzahl ( "1.0" );
BigDecimal b = neu Große Dezimalzahl ( "0.9" );
BigDecimal c = neu Große Dezimalzahl ( "0.8" );
BigDecimal x = A . subtrahieren ( B );
BigDecimal y = B . subtrahieren ( C );
Wenn ( X . vergleichen mit ( j ) == 0) {
System . aus . drucken ( "WAHR" );
}
BezeichnertypBenennungsregelnBeispiel
Pakete Das Präfix eines eindeutigen Paketnamens besteht immer nur aus kleinen ASCII-Buchstaben und ist ein Domänenname der obersten Ebene, normalerweise com, edu, gov, mil, net, org oder der englische zweistellige Code, der das im Jahr 1981 angegebene Land identifiziert ISO 3166-Standard. Die nachfolgenden Teile des Paketnamens variieren entsprechend den internen Namenskonventionen verschiedener Organisationen. Solche Namenskonventionen können die Zusammensetzung bestimmter Verzeichnisnamen verwenden, um Abteilungen, Projekte, Maschinen oder Anmeldenamen zu unterscheiden.com.sun.eng
com.apple.quicktime.v2
edu.cmu.cs.bovik.cheese
Klassen Benennungsregeln: Der Klassenname ist ein Substantiv mit gemischter Groß- und Kleinschreibung, wobei der erste Buchstabe jedes Wortes groß geschrieben wird. Versuchen Sie, die Namen Ihrer Klassen prägnant und aussagekräftig zu halten. Verwenden Sie vollständige Wörter und vermeiden Sie Abkürzungen (es sei denn, die Abkürzung wird häufiger verwendet, z. B. URL oder HTML).Klasse Raster;
Klasse ImageSprite;
SchnittstellenBenennungsregeln: Fallregeln ähneln KlassennamenSchnittstelle RasterDelegate;
Schnittstelle Speichern;
Methoden Der Methodenname ist ein Verb in gemischter Schreibweise, wobei der erste Buchstabe des ersten Wortes klein und der erste Buchstabe der nachfolgenden Wörter groß geschrieben wird.Benennung von Kamelfällenlaufen();
schnell rennen();
getBackground();
Variablen Mit Ausnahme von Variablennamen werden alle Instanzen, einschließlich Klassen und Klassenkonstanten, in gemischter Schreibweise verwendet, wobei der erste Buchstabe des ersten Wortes kleingeschrieben wird und der erste Buchstabe nachfolgender Wörter großgeschrieben wird. Variablennamen sollten nicht mit einem Unterstrich oder Dollarzeichen beginnen, obwohl dies syntaktisch zulässig ist.
Variablennamen sollten kurz und aussagekräftig sein. Variablennamen sollten so gewählt werden, dass sie leicht zu merken sind, also ihren Zweck verdeutlichen.

Aufführen<User> Benutzerliste;

String-Benutzername;

Konstanten Deklarationen von Klassenkonstanten und ANSI-Konstanten sollten ausschließlich in Großbuchstaben erfolgen, wobei die Wörter durch Unterstriche getrennt sein sollten. (Vermeiden Sie ANSI-Konstanten, da diese leicht zu Fehlern führen können.)statische endgültige int MIN_WIDTH = 4;
statische endgültige int MAX_WIDTH = 999;
statische endgültige Int GET_THE_CPU = 1;

(4) Front-End- und Back-End-Spezifikationen:

(1) Anforderungsmethode: Definition spezifischer Vorgänge sind wie folgt:
a) GET: Ressourcen vom Server abrufen. (kann als Auswahlvorgang angesehen werden)
b) POST: Erstellen Sie eine neue Ressource auf dem Server. (kann als Einfügeoperation betrachtet werden)
c) PUT: Ressourcen auf dem Server aktualisieren. (kann als Aktualisierungsvorgang angesehen werden)
d) DELETE: Ressourcen vom Server löschen. (kann als Löschvorgang betrachtet werden)
(2)Angeforderte Rücksendeinformationen:
  • code:http-Statuscode
    • Wenn es weitere Fehler gibt, die Sie selbst definieren, können Sie auch die Verwendung eigener Fehlercodes in Betracht ziehen.
  • message: Entsprechende Textbeschreibungsinformationen
    • Wenn ein Fehler auftritt, werden spezifische Fehlerinformationen angezeigt.
    • Andernfalls ist der Vorgang erfolgreich und die allgemein vereinfachte Verarbeitung gibt OK zurück.
  • data
    • JSON-String, der den Daten entspricht
      • im Fall vonArray, dann ist die entsprechende äußerste Schicht[]vonlist
      • im Fall vonObjekt, dann ist die entsprechende äußerste Schicht{}vondict
  1. {
  2. "code": 200,
  3. "message": "new user has created",
  4. "data": {
  5. "id": "user-4d51faba-97ff-4adf-b256-40d7c9c68103",
  6. "firstName": "crifan",
  7. "lastName": "Li",
  8. "password": "654321",
  9. "phone": "13511112222",
  10. "createdAt": "2016-10-24T20:39:46",
  11. "updatedAt": "2016-10-24T20:39:46"
  12. ......
  13. }
  14. }

(3) Antwortstatuscode

Fehler:

  • 1xx (Informationsstatuscode): Zeigt an, dass die empfangene Anfrage verarbeitet wird.
  • 2xx (Erfolgsstatuscode) : Zeigt an, dass die Anfrage normal verarbeitet wurde. 200 bedeutet, dass die Anfrage erfolgreich zurückgegeben wurde.
  • 3xx (Umleitungsstatuscode): Zum Abschließen dieser Anfrage sind Folgemaßnahmen erforderlich.
  • 4xx (Client-Fehlerstatuscode) : Zeigt an, dass die Anfrage einen Syntaxfehler enthält oder nicht abgeschlossen werden kann. 400, 404, 401, 403 sind alles Fehler, die beim Senden von Anfragen vom Front-End verursacht werden. Das Front-End muss das Problem zuerst überprüfen, sonst liegt möglicherweise ein Fehler beim Schreiben des Back-Ends vor.
  • 5xx (Serverfehlerstatuscode) : Während der Server die Anfrage verarbeitete, ist ein Fehler aufgetreten. Backend-Probleme, möglicherweise ausgelöste Ausnahmen, Serverfehler usw.

2XX Erfolg


200 ok (Anfrage erfolgreich)
204 kein Inhalt (die Anfrage war erfolgreich, aber es wurde kein Ergebnis zurückgegeben)
206 Teilinhalt (der Client fordert einen Teil der Ressource an, der Server antwortet erfolgreich und gibt eine Reihe von Ressourcen zurück)


3XX-Weiterleitung


301 dauerhaft verschieben (permanente Weiterleitung)
302 gefunden (temporäre Weiterleitung)
303 siehe Sonstiges (gibt an, dass GET verwendet werden sollte, da für die der Anforderung entsprechende Ressource ein anderer URI vorhanden ist
Methode zum Abrufen der angeforderten Ressource)
304 nicht geändert (zeigt an, dass der Server die Ressource findet, wenn der Client bedingten Zugriff auf eine Ressource verwendet, die Bedingungen der Anforderung jedoch nicht den Bedingungen entsprechen. Dies hat nichts mit der Umleitung zu tun.)
307 temporäre Weiterleitung (gleiche Bedeutung wie 302)


4XX-Client-Fehler


400 fehlerhafte Anfrage (in der Anfragenachricht liegt ein Syntaxfehler vor)
401 nicht autorisiert (erfordert Authentifizierung (erste Rückgabe) oder Authentifizierung fehlgeschlagen (zweite Rückgabe))
403 verboten (die Anfrage wurde vom Server abgelehnt)
404 nicht gefunden (die angeforderte Ressource kann auf dem Server nicht gefunden werden)


5XX-Serverfehler


500 interner Serverfehler (ein Fehler ist aufgetreten, als der Server die Anfrage ausgeführt hat)
503-Dienst nicht verfügbar (der Server ist überlastet oder aufgrund von Wartungsarbeiten ausgefallen und kann die Anfrage nicht verarbeiten)

(5) Sonstige Spezifikationen:

(1) Wenn eine HTTP-Anfrage Inhalte über den Hauptteil überträgt, muss die Länge kontrolliert werden. Nach Überschreiten der maximalen Länge tritt bei der Back-End-Analyse ein Fehler auf.
veranschaulichen: Das Standardlimit von Nginx beträgt 1 MB und das Standardlimit von Tomcat beträgt 2 MB. Wenn ein geschäftlicher Bedarf besteht, größere Inhalte zu übertragen, können Sie das serverseitige Limit erhöhen.
(2) Verwenden Sie „return“ nicht in „finally“-Blöcken
veranschaulichen: Nachdem die Return-Anweisung im Try-Block erfolgreich ausgeführt wurde, kehrt sie nicht sofort zurück, sondern führt die Anweisung im Final-Block weiter aus. Wenn es hier eine Return-Anweisung gibt, kehrt sie direkt hierher zurück und verwirft den Rückgabepunkt im Versuchen Sie es mit Blockieren.
(3) In Geschäftsszenarien Nachdem eine Ausnahme ausgelöst wurde und erwischt wurde Wenn Sie ein Rollback benötigen Stellen Sie sicher, dass Sie Transaktionen manuell zurücksetzen.
(4) Mithilfe von Protokollen können Sie Informationen aufzeichnen, Verwenden Sie das Protokollierungsframework (SLF4J) JCL – Jakarta Commons-Protokollierung) API in .

3. Anwendung von Apifox:

(1) Download und Installation:

Link: Klicken Sie auf den Link, um Apifox direkt herunterzuladen (laden Sie einfach die neueste Version herunter). Apifox – eine integrierte Kollaborationsplattform für API-Dokumentation, Debugging, Mocking und Tests. Es verfügt über Funktionen wie Schnittstellendokumentverwaltung, Schnittstellen-Debugging, Mock und automatisiertes Testen, und die Effizienz der Schnittstellenentwicklung, des Testens und des gemeinsamen Debuggens wird um das Zehnfache erhöht. Das beste Tool zur Schnittstellendokumentenverwaltung und zum Testen der Schnittstellenautomatisierung.icon-default.png?t=N7T8https://apifox.com/

(2) Erstellen Sie ein neues Projekt und laden Sie Ihre Teamkollegen ein:

1. Erstellen Sie Ihr Team und erstellen Sie ein neues Projekt:

Laden Sie Ihre Teamkollegen ein

2. Erstellen Sie eine neue Schnittstelle und ein neues Datenmodell:

(1) Bestimmen Sie, um welche Anforderung es sich handelt (POST, GET, PUT, DELETE):

(2) Die Testumgebung muss einheitlich sein und die URLs in verschiedenen Umgebungen sind unterschiedlich:

(3) Die Anforderungsparameter werden konfiguriert:

Welche Parameter sind konfiguriert? Geben Sie Parameterbeispiele, chinesische Namen und Parameterbeschreibungen an.

(4) Die Reaktion muss konfiguriert werden:

Beispielsweise muss angegeben werden, welche Art von Informationen in verschiedenen Zuständen zurückgegeben werden, und es müssen Erfolgsbeispiele und Ausnahmebeispiele vorhanden sein (zur Vereinfachung des Frontends).

  1. {
  2. "code": 200,
  3. "message": "登入成功",
  4. "data": {
  5. "user_id": 27,
  6. "user_name": "孟霞",
  7. "user_password": "123456",
  8. "user_age": "15",
  9. "user_photo": "http://dummyimage.com/400x400",
  10. "user_last_time": "1996-12-11 09:03:49",
  11. "user_indentity": "messager",
  12. "user_birthday": "2024-02-23"
  13. }
  14. }

(5) Datenmodell kann erstellt werden:

Sie können mehrere Datenmodelle erstellen, was für die Rückgabe von Antwortfeldern sehr praktisch ist und auch für die Anzeige Ihrer Datenfelder im Front-End praktisch ist.

(3) Verfassen von Spezifikationen für Schnittstellendokumente

Die Schreibvorgaben und spezifischen Details von apifox.

Apifox-Schnellstart |. Apifox-Hilfedokumentationicon-default.png?t=N7T8https://apifox.com/help/

(1) Am Anfang des API-Schnittstellendokuments sollte eine Einführung stehen. Dieser Abschnitt kann Folgendes enthalten:

  • Der Name und die Versionsnummer der API-Schnittstelle
  • Funktion und Zweck der API-Schnittstelle
  • Designzwecke und Prinzipien von API-Schnittstellen
  • Anwendbarer Umfang und Einschränkungen der API-Schnittstelle

Der Zweck dieses Teils besteht darin, den Lesern die Grundsituation und Hintergrundinformationen der API-Schnittstelle verständlich zu machen.

(2) Schnittstellenliste

Als nächstes müssen wir im API-Schnittstellendokument alle Schnittstellen auflisten. Jede Schnittstelle sollte die folgenden Informationen enthalten:

  • Name und Beschreibung der Schnittstelle
  • Anforderungsmethode (GET, POST, PUT, DELETE usw.)
  • Anforderungspfad (URL)
  • Anforderungsparameter (einschließlich Abfrageparameter und Body-Parameter)
  • Anforderungsbeispiel (vollständiges Beispiel, das Anforderungsheader und Anforderungstext enthalten kann)
  • Antwortstatuscode und Beschreibung
  • Antwortparameter (einschließlich Header-Parameter und Body-Parameter)
  • Antwortbeispiel (vollständiges Beispiel, das Antwortheader und Antworttext enthalten kann)

Der Zweck dieses Abschnitts besteht darin, den Lesern ein schnelles Verständnis der grundlegenden Informationen jeder Schnittstelle zu ermöglichen und die Schnittstellen anhand der Beispiele im Dokument korrekt zu verwenden.

(3) Beschreibung der Anforderungsparameter und Antwortparameter

Nach der Schnittstellenliste müssen wir die Anforderungsparameter und Antwortparameter für jede Schnittstelle detailliert beschreiben. Dieser Abschnitt sollte die folgenden Informationen enthalten:

  • Parametername und Beschreibung
  • Parametertypen und -formate
  • Ist es erforderlich und ein Standardwert?
  • Parameterbeispiel

Für Parametertypen und -formate können Sie Standarddatentypen und -formate verwenden oder je nach spezifischen Umständen eigene Datentypen und -formate definieren. Ob erforderliche Werte und Standardwerte anhand der tatsächlichen Situation ermittelt werden müssen.

(4) Beschreibung des Fehlercodes

Bei der Verwendung der API-Schnittstelle kann es vorkommen, dass ein Fehler auftritt. In diesem Fall muss ein Fehlercode zurückgegeben werden, der die Art und Ursache des Fehlers erläutert. Daher müssen wir in der Dokumentation der API-Schnittstelle alle möglichen Fehlercodes angeben. Dieser Abschnitt sollte die folgenden Informationen enthalten:

  • Fehlercode und Beschreibung
  • Fehlerarten und -ursachen
  • Beispiel für einen von der Schnittstelle zurückgegebenen Fehlercode

Der Zweck dieses Abschnitts besteht darin, dass der Leser alle möglichen Fehlerarten und -ursachen versteht und Fehler anhand der Beispiele in der Dokumentation richtig behandeln kann.

4. Debug-Funktion (muss das Backend kennen)

Bringen Sie Ihnen in 2 Minuten das Debuggen in Java bei [Java in IDEA]_So debuggen Sie in Java-Projekten ohne Fälle – CSDN-Blogicon-default.png?t=N7T8https://blog.csdn.net/qq_43436117/article/details/113859737

5. Testkategorie

(1) Spezifische Operationen:

Definieren Sie eine Testklasse

Anregung:

Name der Testklasse: Name der getesteten Klasse Test CalculatorTest
Paketname: xx.xx.xx.test cn.itcast.test
Testmethoden definieren: können unabhängig ausgeführt werden

Anregung:

Methodenname: Testmethodenname testAdd()
Rückgabewert: void
Parameterliste: leere Parameter
Fügen Sie @Test zur Methode hinzu

Importieren Sie die Junit-Abhängigkeitsumgebung

Urteilsergebnis:

Rot: fehlgeschlagen
grün: Erfolg
Im Allgemeinen verwenden wir die statische Methode „asserEquals(expected,actual)“ unter der Assert-Klasse, um unsere erwarteten Ergebnisse zu verarbeiten und Ergebnisse auszugeben

Assert.assertEquals(3, Ergebnis);

Die beiden Parameter sind: Erwartungswert, Programmergebniswert

Warum sollte Assert.assertEquals(expected,actual) zur Verarbeitung von Testergebnissen verwendet werden?

Weil wir festlegen, dass Rot für Fehler und Grün für Richtigkeit steht. Wenn wir eine Testmethode verwenden, um die Additionsmethode eines Computers zu testen, geben wir nur dieses Ergebnis aus (vorausgesetzt, es tritt keine Ausnahme auf). Wenn wir 1 und 3 eingeben, erwarten wir das Ergebnis 4, aber was wir ausgeben, ist 2 und was wir erwarten, ist 4. Das zu diesem Zeitpunkt erhaltene Ergebnis entspricht nicht unseren Erwartungen, aber das laufende Ergebnis ist immer noch grün (Stellt richtig dar), ist das nicht richtig? Zu diesem Zeitpunkt können wir die AssertEquals-Methode am Ende verwenden, um den erwarteten Wert und den vom Programm ausgegebenen Ergebniswert zu vergleichen Wenn sie nicht gleich sind, wird es rot sein. Entspricht diese Zeit unserer Definition von Grün und Rot?

  1. package cn.itcast.test;
  2. import cn.itcast.junit.Calculator;
  3. import org.junit.Assert;
  4. import org.junit.Test;
  5. public class CalculatorTest {
  6. /**
  7. * 测试add方法
  8. */
  9. @Test
  10. public void testAdd(){
  11. Calculator c = new Calculator();
  12. int a = 1, b = 2;
  13. int result = c.add(1, 2);
  14. Assert.assertEquals(3, result);
  15. }
  16. /**
  17. * 测试sub方法
  18. */
  19. @Test
  20. public void testSub(){
  21. Calculator c = new Calculator();
  22. int a = 1, b = 2;
  23. int result = c.sub(1, 2);
  24. Assert.assertEquals(-1, 2);
  25. }
  26. }

@Vor
Wenn Sie @Before vor einer Testmethode hinzufügen, wird diese Methode automatisch ausgeführt, bevor alle Testmethoden ausgeführt werden. Sie wird im Allgemeinen für die Ressourcenanwendung verwendet.

@Nach
Fügen Sie @After vor einer Testmethode hinzu und es wird zu einer Ressourcenfreigabemethode, die automatisch ausgeführt wird, nachdem alle Testmethoden ausgeführt wurden.

Die mit @Before dekorierte Methode wird ausgeführt, bevor die Testmethode ausgeführt wird.

Die mit @After dekorierte Methode wird ausgeführt, nachdem die Testmethode ausgeführt wurde.

Mit @Before oder @After geänderte Methoden werden unabhängig davon ausgeführt, ob die Testmethode auftritt.

(2) Testklassen-Plug-Ins automatisch generieren

Empfohlene Plugins zum automatischen Generieren von Unit-Tests für Java-Projekte – Tencent Cloud Developer Community – Tencent Cloud (tencent.com)icon-default.png?t=N7T8https://cloud.tencent.com/developer/article/1910893

6. Hinweise:

(1) Wenn Sie das Schnittstellendokument im Backend schreiben, sollte es klar und deutlich geschrieben sein, damit Ihr Frontend es verstehen kann. Schreiben Sie es nicht so, dass Sie es selbst verstehen können . Der neu geschriebene Name und die Standardwert-Schnittstellenantwort sollten gut geschrieben sein.

(2) Zusätzlich zu dem, was gelehrt wird, können Sie einige andere Dinge selbst lernen, z. B. E-Mail-Verifizierungsregistrierung, Bestätigungscode-Anmeldung, c3p0, MD5-Verschlüsselung, Protokollprotokolle, Ergebnisstil usw.

(3) Das Schreiben des Codes muss ebenfalls standardisiert sein und die Logik muss streng sein. Wo leere Urteile erforderlich sind, müssen leere Urteile gefällt werden, und wo die Sicherheit erhöht werden kann, kann man daraus lernen.

(4) Das Front-End und das Back-End müssen gut zusammenarbeiten. Lassen Sie das Back-End nicht einfach sein eigenes Ding machen, ohne ein Wort zum Front-End zu sagen. Die interaktive Reaktion des Frontends und Backends ist ebenfalls Teil der Bewertung und macht einen großen Teil aus. Die von Ihnen geschriebene Schnittstelle kann nicht nur über apifox ausgeführt werden. Gibt es Fehler, wenn sie auf der spezifischen Frontend-Seite angezeigt wird? ? Gibt es logische Probleme usw., die möglicherweise berücksichtigt werden müssen?

(Eine Person kann das Land nicht beherrschen!!!)

(5) Legen Sie während der Bedarfsanalyse fest, welche Funktionen und Schnittstellen Sie ausführen möchten, das Front-End hat sie jedoch nicht ausgeführt, wenn die ausgeführten Aufgaben Ihr Back-End erfordern interfaces/data , wenn Sie nicht geschrieben haben, denken Sie sorgfältig nach und kommunizieren Sie mehr.

Sie können einen Vergleich mit tatsächlich funktionierenden Projekten oder Ähnlichem durchführen, beispielsweise mit einer Shopping-Website. Dann sollten Sie die Back-End-Schnittstellen dieser Website, die Funktionsmodule und die spezifischen Details mit Taobao vergleichen.

(6) Streben Sie nicht blind nach mehr, seien Sie logisch und vernünftig und lernen Sie, die Teile zu vereinfachen, die vereinfacht werden können. Aber auch die Grundanzahl an Schnittstellen und Codevolumen muss gewährleistet sein. (Die Schnittstellen, die wir ursprünglich geschrieben haben, waren im Grunde mehr als 40)