Konsep Utama:
RAML menawarkan pendekatan berstruktur, berasaskan skema untuk ujian API, membolehkan kedua-dua pengesahan respons API dan mengejek pelayan API. Pengesahan tindak balas melibatkan menentukan tindak balas yang dijangkakan dalam fail RAML, menggunakan skema JSON untuk struktur tindak balas, dan menggunakan alat seperti Guzzle dan PHPUnit untuk ujian. API mengejek dengan RAML mensimulasikan respons API menggunakan respons HTTP yang ditakrifkan dalam fail RAML, memudahkan ujian tanpa pelayan langsung. Ini melibatkan penubuhan pelayan untuk mentafsirkan fail RAML dan menghasilkan respons berdasarkan contoh dan skema yang ditetapkan. Menggunakan RAML untuk ujian API memastikan pematuhan API terhadap spesifikasi, meningkatkan kebolehpercayaan dan keyakinan pemaju. Fleksibiliti beliau menyokong ujian merentasi pelbagai format data, kaedah pengesahan, dan kaedah HTTP.
Mengesahkan respons API:
Fail RAML sampel untuk API fiksyen (dipermudahkan untuk demonstrasi):
#%RAML 0.8 title: Albums version: v1 baseUri: http://localhost:8000 traits: - secured: description: Requires authentication queryParameters: accessToken: displayName: Access Token description: Access token for secure routes required: true - unsecured: description: Unsecured route /account: displayName: Account get: description: Get authenticated user's account details. is: [secured] responses: 200: body: application/json: schema: | { "$schema": "http://json-schema.org/schema#", "type": "object", "description": "User details", "properties": { "id": {"type": "integer"}, "username": {"type": "string"}, "email": {"type": "string", "format": "email"}, "twitter": {"type": "string", "maxLength": 15} }, "required": ["id", "username"] } example: | { "id": 12345678, "username": "joebloggs", "email": "joebloggs@example.com", "twitter": "joebloggs" } put: description: Update user account /albums: displayName: Albums /{id}: displayName: Album uriParameters: id: description: Album ID /tracks: displayName: Album Tracklisting get: responses: 200: body: application/json: schema: | { "$schema": "http://json-schema.org/schema#", "type": "array", "description": "Tracks", "items": { "id": {"type": "integer"}, "name": {"type": "string"} }, "required": ["id", "name"] } example: | [ {"id": 12345, "name": "Dark & Long"}, {"id": 12346, "name": "Mmm Skyscraper I Love You"} ]
mengejek API menggunakan RAML:
Bahagian ini menggariskan membuat API mock menggunakan RAML. Kelas A merangkumi data tindak balas HTTP (kod status, badan, tajuk). Kelas Response
menggunakan RAML untuk bertindak balas terhadap URL, memanfaatkan Fastroute untuk penghalaan. Pelayan mudah (index.php) menggunakan RamlApiMock
untuk mengendalikan permintaan dan mengembalikan respons mock berdasarkan fail RAML. Ini membolehkan ujian tanpa pelayan API secara langsung. RamlApiMock
Ringkasan dan Soalan Lazim:
Artikel ini menyimpulkan dengan meringkaskan penggunaan RAML untuk ujian API dan mengejek, menonjolkan manfaatnya. Seksyen FAQ menangani soalan umum mengenai peranan RAML dalam ujian API, termasuk mengendalikan pelbagai format data, pengesahan, kaedah HTTP, kod status, dan tajuk. Ia juga menyediakan panduan mengenai memilih dan menggunakan alat pengesahan RAML.Atas ialah kandungan terperinci Menguji API dengan RAML. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!