1 Die Schnittstelle kann je nach Anforderer in zwei Typen unterteilt werden:
1. Es handelt sich um eine Schnittstelle, die von anderen internen Projekten aufgerufen wird (einschließlich js asynchron angeforderter Schnittstellen und Timer).
2. Es handelt sich um eine externe Schnittstelle, die hauptsächlich für Aufrufe externer Entwickler bereitgestellt wird.
Der größte Unterschied zwischen den beiden Schnittstellen besteht darin, dass die interne Schnittstelle keine strikte Authentifizierung erfordert, während die externe Schnittstelle eine strikte Authentifizierung erfordert. Es gibt verschiedene Verschlüsselungs- und Entschlüsselungsmethoden, von denen die gebräuchlichste und einfachste HTTP Basic ist Die Authentifizierung erfolgt beispielsweise im Popup-Fenster „Konto und Passwort“, das in unserem Backend angezeigt wird. Sie müssen Ihr Konto und Ihr Passwort eingeben, um die Überprüfung zu bestehen. Wenn die interne Schnittstelle jedoch wichtige Vorgänge umfasst und Sie nicht von anderen böswillig dazu aufgefordert werden möchten, müssen Sie dennoch einige Verschlüsselungsüberprüfungen durchführen.
2. Unabhängig von der Schnittstelle sollten folgende Aspekte berücksichtigt werden:
1. Parametersicherheit: Dafür haben wir $_INPUT, was im Grunde ausreicht. Ob eine Authentifizierung erforderlich ist: Wenn es sich nur um eine Schnittstelle der internen Benachrichtigungsklasse/Rückrufklasse handelt, sind die normalen Daten nicht betroffen. In diesem Fall können Sie beispielsweise überhaupt keine Überprüfung durchführen. Ich werde eine Schnittstelle zum Synchronisieren des Bestellstatus erstellen. Der darin enthaltene Prozess besteht darin, die Bestellungen mit problematischem Bestellstatus abzufragen und dann den Status dieser Bestellungen zu aktualisieren. Diese Art von Schnittstelle muss keinen Wert zurückgeben, und selbst wenn sie von einer böswilligen Person in böswilliger Absicht aufgerufen wird, wird sie nicht beeinträchtigt, sodass überhaupt keine Authentifizierung erforderlich ist. Ob eine Verifizierung hinzugefügt werden soll oder nicht, hängt daher von der tatsächlichen Logik der Schnittstelle ab.
2. Können Sie die Anfrage wiederholen? Wenn eine Schnittstelle beispielsweise ein Datenelement basierend auf der eingehenden Bestellnummer einfügt, muss sie wiederholte Anforderungen gut beurteilen, um das Einfügen mehrerer Datenelemente zu vermeiden.
3. Schnittstellenspezifikation schreiben
1. Verwenden Sie die try...catch...-Struktur. (Hauptsächlich kann das Programm jederzeit beendet werden)
2. Geben Sie den Erfolgscode nicht gleich „true“ oder „false“ zurück. Wenn Sie ein Dokument schreiben möchten, sollte dies auch der Fall sein klar formuliert sein, um dem Anrufer die Abfrage von Fehlergründen zu erleichtern.
Beispiel:
<?php $code = 200; // 接口状态码 $name = trim($_INPUT['name']); $age = trim($_INPUT['age']); if (empty($name)) { $code = 401; throw new Exception('名字不能为空'); } if (!is_numeric($age)) { $code = 402; throw new Exception('年龄必须由数字组成'); } $database_obj = new database_class(); $res = $database_obj->save($name, $age); if ( !$res ) { $code = 403; throw new Exception('保存数据失败'); } $msg = 'ok'; } catch ( Exception $e ) { $msg = $e->getMessage(); } output_json($code,$data,$msg); // $data可以放置需要返回的数据 // output_json函数在大function里面有~如果不想引入大function的话可以复制一份到自己项目 // ========END=======
Empfohlenes Tutorial: PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWelche Arten von PHP-Schnittstellen gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!