Rumah > pembangunan bahagian belakang > tutorial php > Belajar membina API dengan PHP dan GraphQL

Belajar membina API dengan PHP dan GraphQL

PHPz
Lepaskan: 2023-06-19 15:42:01
asal
1190 orang telah melayarinya

Dengan perkembangan teknologi Internet, seni bina pemisahan bahagian hadapan dan belakang telah menjadi arus perdana pembangunan Web. Dalam seni bina di mana hujung depan dan belakang dipisahkan, API ialah jambatan penting yang menghubungkan hujung depan dan belakang. Apabila membina API, PHP dan GraphQL, sebagai dua rangka kerja teknologi popular, disukai secara meluas oleh pembangun. Artikel ini akan memperkenalkan cara membina API menggunakan PHP dan GraphQL.

1. PHP membina API

PHP ialah bahasa skrip sumber terbuka yang digunakan secara meluas dalam pembangunan web meliputi pembangunan laman web, aplikasi pangkalan data, pemprosesan log, pemprosesan imej dan aspek lain. Apabila membina API, PHP boleh digunakan sebagai bahasa back-end untuk menghantar data ke front-end dengan berinteraksi dengan front-end.

  1. Pasang PHP

Mula-mula, kita perlu memasang persekitaran PHP. Anda boleh menyemak sama ada PHP telah dipasang secara setempat dengan memasukkan arahan berikut dalam tetingkap baris arahan:

php -v
Salin selepas log masuk

Jika nombor versi PHP dipaparkan, ini bermakna persekitaran PHP telah dipasang. Jika ia tidak dipasang, anda perlu pergi ke [laman web rasmi PHP](https://www.php.net/) untuk memuat turun dan memasangnya.

  1. Pilih rangka kerja

Dalam PHP, terdapat berbilang rangka kerja untuk dipilih, seperti Laravel, Symfony, Zend, dsb. Antaranya, Laravel merupakan rangka kerja yang digunakan secara meluas dalam pembangunan aplikasi web PHP. Berikut ialah langkah-langkah untuk mencipta API menggunakan rangka kerja Laravel.

  1. Buat Projek

Anda boleh mencipta projek Laravel bernama "myapp" secara setempat dengan memasukkan arahan berikut dalam tetingkap baris arahan:

composer create-project laravel/laravel myapp --prefer-dist
Salin selepas log masuk
  1. Buat Pengawal

Sebelum mencipta API, anda perlu mencipta pengawal. Anda boleh mencipta pengawal dengan memasukkan arahan berikut:

php artisan make:controller MyController
Salin selepas log masuk

Dalam MyController, anda boleh menulis kod logik perniagaan API. Contohnya, dalam MyController, anda boleh menulis kod API untuk menanyakan semua maklumat pengguna seperti berikut:

public function getAllUsers()
{
    $users = User::all(); // 查询所有用户信息
    return response()->json($users); // 返回JSON格式的用户信息
}
Salin selepas log masuk

Antaranya, Pengguna mewakili model pengguna, yang boleh ditakrifkan melalui ORM Eloquent Laravel.

  1. Penghalaan

Dalam Laravel, permintaan API boleh diproses melalui penghalaan. Anda boleh menambah penghalaan pada API yang baru anda buat dengan menggunakan kod berikut:

Route::get('/users', 'MyController@getAllUsers');
Salin selepas log masuk

Antaranya, '/users' mewakili alamat URL permintaan dan 'MyController@getAllUsers' mewakili kaedah pengawal yang mengendalikan permintaan itu.

  1. Jalankan projek

Akhir sekali, anda boleh menjalankan projek Laravel yang dibuat dengan arahan berikut:

php artisan serve
Salin selepas log masuk

Dengan mengakses 'http://localhost : 8000/pengguna' untuk melihat data format JSON bagi semua maklumat pengguna.

2. API pembinaan GraphQL

Berbanding dengan API RESTful, kelebihan GraphQL ialah ia membolehkan bahagian hadapan memulakan pertanyaan yang tepat untuk mendapatkan data yang diperlukan, mengurangkan tekanan pertanyaan pangkalan data . Di bawah ini kami memperkenalkan cara menggunakan GraphQL untuk membina API.

  1. Pasang GraphQL

GraphQL boleh dimulakan sebagai perkhidmatan API bebas, jadi ia perlu dipasang terlebih dahulu. GraphQL boleh dipasang melalui arahan berikut:

npm install graphql-yoga
Salin selepas log masuk
  1. Buat Skema

Dalam GraphQL, anda perlu menulis Skema untuk mentakrifkan antara muka API. Skema menerangkan jenis setiap jenis data, jenis pulangan setiap medan, dan parameter input dan output kaedah. Sebagai contoh, dalam Skema ini, kita perlu menentukan jenis Pengguna dan antara muka untuk menanyakan semua maklumat pengguna. Kodnya adalah seperti berikut:

const typeDefs = `
  type User {
    id: ID!
    name: String!
    email: String
  }
  type Query {
    getAllUsers: [User]!
  }
`;
Salin selepas log masuk
  1. Tulis Penyelesai

Penyelesai melaksanakan setiap medan dalam Skema dan menerangkan cara mendapatkan data. Dalam contoh ini, kod Penyelesai untuk menanyakan semua maklumat pengguna adalah seperti berikut:

const resolvers = {
  Query: {
    getAllUsers: async () => {
      const users = await User.find();
      return users;
    },
  },
};
Salin selepas log masuk
  1. Jalankan projek

Akhir sekali, jalankan perkhidmatan GraphQL Anda boleh memulakan perkhidmatan dengan arahan berikut :

const { GraphQLServer } = require('graphql-yoga');

const server = new GraphQLServer({ typeDefs, resolvers });
server.start({ port: 4000 }, () =>
  console.log(`Server is running on localhost:4000`)
);
Salin selepas log masuk

Dengan mengakses 'http://localhost:4000/graphql', anda boleh menggunakan alat GraphQL Playground untuk menguji API.

Kesimpulan

Artikel ini menerangkan cara membina API menggunakan PHP dan GraphQL. Dalam PHP, anda boleh menggunakan rangka kerja Laravel untuk mencipta API, dan dalam GraphQL, anda boleh menggunakan graphql-yoga. Dengan mengkaji kandungan artikel ini, saya percaya bahawa pembaca mempunyai pemahaman tertentu tentang cara menggunakan PHP dan GraphQL untuk membina API, dan boleh cuba menerapkannya dalam projek sebenar.

Atas ialah kandungan terperinci Belajar membina API dengan PHP dan GraphQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan