Heim  >  Artikel  >  Web-Frontend  >  Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool

Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool

藏色散人
藏色散人nach vorne
2022-08-09 15:37:041559Durchsuche

Ich habe kürzlich von der RESTful-Schnittstellenspezifikation erfahren und sie mit Postman eingeführt. Ich werde die relevante RESTful-Schnittstellenspezifikation hier aufzeichnen:

1.

REST: Es handelt sich um einen Architekturstil für Webdienste; er verwendet weit verbreitete Standards und Protokolle wie HTTP, URI, XML, JSON, HTML usw.; es handelt sich um ein leichtes, plattformübergreifendes und sprachübergreifendes Architekturdesign ; es ist ein Design. Stil ist kein Standard, sondern eine Idee.

RESTful: Der entsprechende Chinesisch ist RESTful; Restful-Webdienst ist eine gängige REST-Anwendung, bei der es sich um einen Webdienst handelt, der dem REST-Stil entspricht; eine Art ROA (Ressourcenorientierte Architektur). ) [Empfehlung: Web-Frontend] Die Essenz von RESTful ist ein Software-Architekturstil. Der Kern ist ressourcenorientiert und löst die Probleme:

Reduzieren Sie die Komplexität der Entwicklung
  • Verbessern Sie die Skalierbarkeit des Systems
2. Der Unterschied zwischen SOAP und REST:

SOAP (Simple Object Access Protocol): Eine Protokollspezifikation für den Datenaustausch. Es handelt sich um ein leichtes, einfaches, XML-basiertes Protokoll. REST (Representational State Transfer): Ein Softwarearchitekturstil, der die Komplexität der Entwicklung reduzieren und die Skalierbarkeit des Systems verbessern kann.

Effizienz und Benutzerfreundlichkeit

: SOAP
: Aufgrund verschiedener Anforderungen, die den Inhalt des eigenen Protokolls immer weiter erweitern, ist die Leistung bei der SOAP-Verarbeitung zurückgegangen. Gleichzeitig sind auch die Benutzerfreundlichkeit und die Lernkosten gestiegen. RESTful
: Aufgrund seines ressourcenorientierten Schnittstellendesigns und der Betriebsabstraktion vereinfacht es schlechte Designs von Entwicklern und nutzt außerdem das ursprüngliche Anwendungsprotokoll-Designkonzept von HTTP maximal aus.

Sicherheit

: RESTful
eignet sich sehr gut für ressourcenbasierte Serviceschnittstellen und eignet sich insbesondere für Szenarien, die eine hohe Effizienz, aber geringe Sicherheitsanforderungen erfordern. Die Reife von SOAP
kann das Schnittstellendesign vereinfachen, das für mehrere Entwicklungssprachen bereitgestellt werden muss und höhere Sicherheitsanforderungen stellt. Kurz gesagt:
Sicherheit
: SOAP ist besser als REST; Effizienz und Benutzerfreundlichkeit
: REST ist besser; Reife
: Im Allgemeinen ist SOAP in Bezug auf die Reife besser.

3. So entwerfen Sie eine RESTful-API

:
Ressourcenpfad: In der RESTful-Architektur stellt jede URL eine Ressource dar, sodass die URL keine Verben, sondern nur Substantive enthalten kann. Im Allgemeinen sollten Substantive in APIs im Plural stehen.

HTTP-Verb: Operationen auf Ressourcen (CURD) werden durch HTTP-Verben (Prädikate) dargestellt.

GET: Holen Sie sich die Ressource (ein oder mehrere Elemente) vom Server.
  • POST: Erstellen Sie eine neue Ressource auf dem Server.
  • PUT: Ressourcen auf dem Server aktualisieren (der Client stellt die kompletten geänderten Ressourcen bereit).
  • DELETE: Ressourcen vom Server löschen.
  • Nehmen wir als Beispiel einen Zoo (einschließlich Informationen zu verschiedenen Tieren und Mitarbeitern):
https://api.example.com/v1/zoos //动物园资源
https://api.example.com/v1/animals //动物资源
https://api.example.com/v1/employees //雇员资源

POST /zoos: Einen neuen Zoo erstellen
  • GET /zoos/ID: Informationen zu einem bestimmten Zoo abrufen
  • PUT / zoos/ID: Aktualisieren Sie die Informationen eines bestimmten Zoos.
  • DELETE /zoos/D: Löschen Sie einen Zoo =10: Geben Sie die Startposition des zurückgegebenen Datensatzes an.
  • ?page=2&per_page=100: Geben Sie die Seite und die Anzahl der Datensätze pro Seite an.
?sortby=name&order=asc: Geben Sie an, nach welchem ​​Attribut die zurückgegebenen Ergebnisse sortiert werden und in welcher Reihenfolge.

?animal_type_id=1: Filterbedingungen angeben

    Statuscode
  • :
  • 200 (OK) – wenn die vorhandene Ressource geändert wurde
  • 201 (erstellt) – wenn eine neue Ressource erstellt wird
  • 202 (akzeptiert) – Die Anfrage wurde zur Verarbeitung angenommen, aber noch nicht abgeschlossen (asynchrone Verarbeitung)
301 (dauerhaft verschoben) – Der URI der Ressource wurde aktualisiert

303 (Siehe Andere) – Andere (z. B. Load Ausgleich) 400 (schlechte Anfrage) – Bezieht sich auf eine schlechte Anfrage

404 (nicht gefunden) – Die Ressource existiert nicht
  • 406 (nicht akzeptabel) – Der Server unterstützt die erforderliche Darstellung nicht
  • 409 (Konflikt) – Allgemeiner Konflikt
  • 412 (Vorbedingung fehlgeschlagen) – Vorbedingungsbedingungsfehler (z. B. Konflikte beim Ausführen von Bedingungsaktualisierungen)
  • 415 (nicht unterstützter Medientyp) – Die empfangene Darstellung wird nicht unterstützt
  • 500 (interner Serverfehler) – Allgemeine Fehlerantwort
  • 503 (Dienst nicht verfügbar) – Der Dienst ist derzeit nicht verfügbar. Verarbeitungsanfragen
  • Fehlerbehandlung
  • :
  • Die zurückgegebenen Informationen verwenden Fehler als Schlüsselnamen und Fehlerinformationen als Schlüsselwert.
  • {
     error: “Invalid API key”
     }
  • Ergebnisse zurückgeben
  • :
  • GET /collection:返回资源对象的列表(数组)
  • GET /collection/resource:返回单个资源对象
  • POST /collection:返回新生成的资源对象
  • PUT /collection/resource:返回完整的资源对象
  • PATCH /collection/resource:返回完整的资源对象
  • DELETE /collection/resource:返回一个空文档

4.REST风格的接口测试流程
我们直接用一张图来介绍吧
Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool5.代码编写和Postman测试
工具:idea,mysql数据库,Postman
数据库表数据:
Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool
实体类:

@Data
@ApiModel("用户实体类")
public class User extends Model<user> implements Serializable {
    @ApiModelProperty("用户id")
    @NotNull(message = "用户id不能为空")
    private Integer id;

    @NotBlank(message = "用户名不能为空")
    @ApiModelProperty("用户名")
    private String name;

    @Min(1)
    @Max(100)
    @ApiModelProperty("用户年龄")
    private Integer age;

    @NotEmpty(message = "邮箱不能为空")
    @ApiModelProperty("用户邮箱")
    @Email
    private String email;

    @ApiModelProperty("0:未删除 1:已删除")
    @TableLogic
    private Integer deleted;

    @NotBlank(message = "密码不能为空")
    @ApiModelProperty("用户密码")
    private String password;
    }</user>

controller层的代码(service层省略):

@Api(tags = "用户管理")
@RestController
@RequestMapping("/MyWebsite/user")
public class UserController {
    @Autowired
    private UserServiceImpl userServiceimpl;

   @ApiOperation(value = "新增用户")
    @PostMapping
    public int insertUser(User user) {

        System.out.println("新增成功");

        return userServiceimpl.insertUser(user);
    }

    @ApiOperation(value = "修改用户信息")
    @PutMapping
    public void updateUser(@RequestBody @Valid User user) {

        userServiceimpl.updateUser(user);

        System.out.println("修改成功");
    }

    @ApiOperation(value = "删除用户", notes = "根据id删除用户")
    @DeleteMapping("/{id}")
    public int deleteUser(@ApiParam("用户id") @PathVariable @Valid Integer id) {

        System.out.println("删除成功");

        return userServiceimpl.deleteUser(id);
    }

    @ApiOperation(value = "查询所有用户")
    @GetMapping
    public List<user> allUser() {

        System.out.println("查询成功");

        return userServiceimpl.allUser();
    }

    @ApiOperation(value = "id查询用户")
    @GetMapping("/{id}")
    public User selectById(@PathVariable("id") String id) {
        return userServiceimpl.selectById(id);
    }
}</user>

利用Postman测试(url路径要对应上):
查询所有用户:http://localhost:8081/MyWebsite/user
Header:Content-Type=application/json
Body:空
Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool
查询成功!
根据id查询:
Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool
查询成功!
新增用户
Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool
查看数据库新增成功!
Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool
修改用户信息(修改id为7的姓名和年龄):
Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool
查看数据库修改成功!
Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool
根据id删除用户
Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool
查看数据库删除成功!(deleted=1)
可能你的是直接删除了整一条数据
Einführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool
当查询或更新或删除不存在的数据时(或者数据不合法),都是执行失败的
还有其他接口,例如删除所有等接口,这里不一一测试了
若有不正确的地方,欢迎指出。

Das obige ist der detaillierte Inhalt vonEinführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen