Pembangunan backend Java: menggunakan Retrofit untuk panggilan API
Dengan perkembangan pesat teknologi Internet, API telah menjadi protokol standard untuk komunikasi antara aplikasi dan perkhidmatan dan digunakan secara meluas dalam pelbagai senario , seperti mudah alih pembangunan aplikasi dan laman web. Dalam bidang pembangunan back-end Java, Retrofit kini merupakan rangka kerja yang sangat popular untuk melaksanakan panggilan API. Artikel ini akan memperkenalkan apa itu Retrofit dan cara menggunakan Retrofit untuk membuat panggilan API.
1. Apa itu Retrofit
Retrofit ialah rangka kerja berasaskan Java untuk melaksanakan panggilan API bahagian pelayan Ia menggunakan anotasi untuk menerangkan permintaan HTTP, parameter dan badan tindak balas dan menggunakan antara muka Java untuk Laksanakan panggilan API sebelah pelayan. Ia menggunakan OkHttp sebagai perpustakaan permintaan rangkaian yang mendasari, menyokong kaedah permintaan rangkaian segerak dan tak segerak, dan menyediakan sejumlah besar fungsi tambahan, seperti cuba semula permintaan, caching permintaan, muat naik fail, dsb. Retrofit juga menyokong pelbagai penukar data, seperti Gson, Jackson, Moshi, dsb., yang boleh menukar badan permintaan dan tindak balas ke objek Java dengan mudah.
2. Cara menggunakan Retrofit untuk membuat panggilan API
1 Import dependensi
Untuk menggunakan Retrofit untuk membuat panggilan API, anda perlu menambah kebergantungan yang berkaitan pada projek. . Dalam projek Maven, anda boleh menambah kebergantungan berikut dalam fail pom.xml:
<dependency> <groupId>com.squareup.retrofit2</groupId> <artifactId>retrofit</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.squareup.retrofit2</groupId> <artifactId>converter-gson</artifactId> <version>2.9.0</version> </dependency>
Antaranya, pengubahsuaian ialah kebergantungan rangka kerja Retrofit itu sendiri dan penukar-gson ialah kebergantungan penukar data Gson Retrofit .
2. Cipta antara muka API
Apabila menggunakan Retrofit untuk membuat panggilan API, anda perlu mencipta antara muka API yang sepadan terlebih dahulu. Antara muka menerangkan URL, kaedah permintaan, parameter permintaan, jenis data pulangan dan maklumat lain API pelayan. Sebagai contoh, kod berikut mentakrifkan antara muka asas untuk menghantar permintaan GET ke pelayan dan mengembalikan rentetan:
public interface ApiService { @GET("/api/hello") Call<String> getHello(); }
Dalam antara muka ini, anotasi @GET yang disediakan oleh Retrofit digunakan untuk menerangkan jenis Permintaan HTTP dan URL alamat, gunakan Call
3. Cipta objek Retrofit
Selepas antara muka ditakrifkan, anda perlu menggunakan Retrofit untuk mencipta contoh perkhidmatan yang sepadan. Apabila mencipta objek Retrofit, anda boleh menentukan URL permintaan, penukar data, perpustakaan permintaan rangkaian dan sifat berkaitan lain. Sebagai contoh, kod berikut mencipta contoh Retrofit dan menentukan URL permintaan, penukar data Gson dan perpustakaan permintaan rangkaian OkHttp:
Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://localhost:8080") .addConverterFactory(GsonConverterFactory.create()) .client(new OkHttpClient.Builder().build()) .build();
Antaranya, baseUrl menentukan alamat URL asas pelayan dan addConverterFactory menentukan data penukaran Penukar ialah GsonConverter, dan klien menentukan penggunaan OkHttp sebagai perpustakaan permintaan rangkaian yang mendasari. Konfigurasi lalai OkHttpClient digunakan di sini, tetapi anda juga boleh mengkonfigurasi sendiri parameter yang berkaitan, seperti tamat masa sambungan, tamat masa baca dan tulis, dsb.
4 Cipta contoh API
Retrofit mencipta kelas pelaksanaan antara muka API melalui proksi dinamik, menjadikan panggilan API sangat mudah. Contohnya, kod berikut mencipta tika API dan memanggil kaedah getHello:
ApiService apiService = retrofit.create(ApiService.class); Call<String> call = apiService.getHello(); Response<String> response = call.execute(); System.out.println(response.body());
Dalam kod ini, kelas pelaksanaan ApiService dijana secara dinamik melalui kaedah retrofit.create dan kaedah getHello digunakan untuk mendapatkan Panggil Objek, dan akhirnya panggil kaedah laksana Panggilan untuk melaksanakan permintaan secara serentak. Kaedah pelaksanaan akan mengembalikan objek Respons, yang mengandungi semua maklumat yang dikembalikan oleh pelayan, di mana atribut badan ialah data yang dikembalikan oleh pelayan.
Jika anda ingin melaksanakan permintaan secara tidak segerak, anda boleh menggunakan kaedah enqueue Panggilan. Contohnya:
ApiService apiService = retrofit.create(ApiService.class); Call<String> call = apiService.getHello(); call.enqueue(new Callback<String>() { @Override public void onResponse(Call<String> call, Response<String> response) { System.out.println(response.body()); } @Override public void onFailure(Call<String> call, Throwable t) { t.printStackTrace(); } });
Dalam kod ini, kaedah enqueue Panggilan digunakan untuk melaksanakan permintaan secara tidak segerak dan antara muka Panggilan Balik dilaksanakan untuk memproses hasil permintaan. Kaedah onResponse akan dipanggil apabila permintaan berjaya, dan kaedah onFailure akan dipanggil apabila permintaan gagal.
3. Ringkasan
Artikel ini memperkenalkan penggunaan asas Retrofit, termasuk proses mencipta antara muka API, mencipta tika Retrofit, mencipta tika API dan melaksanakan permintaan rangkaian. Retrofit memudahkan panggilan API dengan menggunakan anotasi, menjadikannya sangat mudah untuk bahagian hadapan dan belakang untuk berinteraksi dengan data. Anda perlu memberi perhatian kepada isu keselamatan benang apabila menggunakan Retrofit, kerana Retrofit tidak selamat untuk benang dan memerlukan penyegerakan yang betul dalam persekitaran berbilang benang.
Atas ialah kandungan terperinci Pembangunan backend Java: Panggilan API menggunakan Retrofit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!