So verwenden Sie MixPHP zur Entwicklung von API-Schnittstellen

不言
Freigeben: 2023-04-03 06:14:01
Original
3701 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich vor, wie man MixPHP zum Entwickeln von API-Schnittstellen verwendet. Jetzt kann ich ihn mit Ihnen teilen.

MixPHP ist eine gängige Software, die auf Swoole basiert Als speicherbasiertes PHP-Hochleistungs-Framework eignen sich die Hochleistungsfunktionen des Frameworks sehr gut für die Entwicklung von API-Schnittstellen, und MixPHP kommt dem traditionellen MVC-Framework sehr nahe, sodass die Entwicklung von Schnittstellen sehr einfach ist.

Das Folgende ist ein einfaches Beispiel für die Entwicklung einer API-Schnittstelle:

Rufen Sie einen Artikel aus der Tabelle articles über id ab.

URL für den Zugriff auf diese Schnittstelle:

http://www.e.com/articles/details?id=1
Nach dem Login kopieren

Die Datenbanktabellenstruktur ist wie folgt:

CREATE TABLE `articles` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `content` varchar(255) NOT NULL,
  `dateline` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Nach dem Login kopieren

Schritt 1

Ändern Sie die Datenbankkonfigurationsdatei , MixPHP In der Anwendungskonfigurationsdatei beziehen sich Informationen zur Datenbank auf die Datei common/config/database.php.

So verwenden Sie MixPHP zur Entwicklung von API-Schnittstellen

Schritt 2

Ändern Sie die Anwendungskonfigurationsdatei:

  • Ändern Sie das Standardausgabeformat der Antwortkomponente in das JSON-Format.

  • Ändern Sie das 404/500-Fehlerausgabeformat in das JSON-Format.

So verwenden Sie MixPHP zur Entwicklung von API-Schnittstellen

Die standardmäßige 404/500-Antwort des Frameworks ist eine Webseite, und der API-Dienst muss auf JSON-Daten reagieren. Normalerweise andere herkömmliche MVC Frameworks müssen an vielen Stellen geändert werden, um diese Anforderung zu erfüllen. MixPHP selbst stellt diese Konfiguration bereit, und Sie müssen nur die Konfiguration ändern.

Die Standard-Webanwendung von MixPHP verfügt über zwei Konfigurationsdateien, nämlich:

  • main.php: wird bei der Bereitstellung in mix-httpd verwendet.

  • main_kompatible.php: wird bei der Bereitstellung in Apache/PHP-FPM verwendet.

Bei der Entwicklung der API empfehlen wir, sie unter Apache/PHP-FPM zu entwickeln und sie dann auf mix-httpd bereitzustellen, wenn sie online geht. Der Wechsel erfolgt jedenfalls nahtlos.

Jetzt ändern wir den Standardformatschlüssel unter dem Antwortschlüssel in mixhttpError::FORMAT_JSON wie folgt:

// 响应
'response' => [
    // 类路径
    'class'         => 'mix\http\compatible\Response',
    // 默认输出格式
    'defaultFormat' => mix\http\Response::FORMAT_JSON,
    // json
    'json'          => [
        // 类路径
        'class' => 'mix\http\Json',
    ],
    // jsonp
    'jsonp'         => [
        // 类路径
        'class' => 'mix\http\Jsonp',
        // callback键名
        'name'  => 'callback',
    ],
    // xml
    'xml'           => [
        // 类路径
        'class' => 'mix\http\Xml',
    ],
],
Nach dem Login kopieren

Dann ändern wir den Formatschlüssel unter dem Fehlerschlüssel in der Datei main_kompatible.php in mixhttpError: :FORMAT_JSON wie folgt:

// 错误
'error'    => [
    // 类路径
    'class'  => 'mix\http\Error',
    // 输出格式
    'format' => mix\http\Error::FORMAT_JSON,
],
Nach dem Login kopieren

Schritt 3

Erstellen Sie einen Controller:

apps/index/controllers/ArticlesController.php
Nach dem Login kopieren
<?php

namespace apps\index\controllers;

use mix\facades\Request;
use mix\http\Controller;
use apps\index\messages\ErrorCode;
use apps\index\models\ArticlesForm;

class ArticlesController extends Controller
{

    public function actionDetails()
    {
        // 使用模型
        $model             = new ArticlesForm();
        $model->attributes = Request::get();
        $model->setScenario(&#39;actionDetails&#39;);
        if (!$model->validate()) {
            return [&#39;code&#39; => ErrorCode::INVALID_PARAM];
        }
        // 获取数据
        $data = $model->getDetails();
        if (!$data) {
            return [&#39;code&#39; => ErrorCode::ERROR_ID_UNFOUND];
        }
        // 响应
        return [&#39;code&#39; => ErrorCode::SUCCESS, &#39;data&#39; => $data];
    }

}
Nach dem Login kopieren

Erstellen Sie eine Fehlercodeklasse:

apps/index/messages/ErrorCode.php
Nach dem Login kopieren
<?php

namespace apps\index\messages;

class ErrorCode
{

    const SUCCESS = 0;
    const INVALID_PARAM = 100001;
    const ERROR_ID_UNFOUND = 200001;

}
Nach dem Login kopieren

Erstellen Sie ein Formularvalidierungsmodell :

apps/index/models/ArticlesForm.php
Nach dem Login kopieren
<?php

namespace apps\index\models;

use mix\validators\Validator;
use apps\common\models\ArticlesModel;

class ArticlesForm extends Validator
{

    public $id;

    // 规则
    public function rules()
    {
        return [
            &#39;id&#39; => [&#39;integer&#39;, &#39;unsigned&#39; => true, &#39;maxLength&#39; => 10],
        ];
    }

    // 场景
    public function scenarios()
    {
        return [
            &#39;actionDetails&#39; => [&#39;required&#39; => [&#39;id&#39;]],
        ];
    }

    // 获取详情
    public function getDetails()
    {
        return (new ArticlesModel())->getRowById($this->id);
    }

}
Nach dem Login kopieren

Erstellen Sie ein Datentabellenmodell:

apps/common/models/ArticlesModel.php
Nach dem Login kopieren
<?php

namespace apps\common\models;

use mix\facades\RDB;

class ArticlesModel
{

    const TABLE = &#39;articles&#39;;

    // 获取一行数据通过id
    public function getRowById($id)
    {
        $sql = "SELECT * FROM `" . self::TABLE . "` WHERE id = :id";
        $row = RDB::createCommand($sql)->bindParams([
            &#39;id&#39; => $id,
        ])->queryOne();
        return $row;
    }

}
Nach dem Login kopieren

Das Obige ist das Schreiben des gesamten Codes.

Schritt 4

Verwenden Sie Postman zum Testen wie folgt:

So verwenden Sie MixPHP zur Entwicklung von API-Schnittstellen

Die Schnittstellenentwicklung und -tests sind abgeschlossen, nicht wahr? einfach?

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Analyse asynchroner Aufgaben durch Lernen von Swoole

Einführung in Swoole durch Lernen von Swoole

Das obige ist der detaillierte Inhalt vonSo verwenden Sie MixPHP zur Entwicklung von API-Schnittstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage