API GraphQL dengan Spring Boot · Pelajaran

Mengesahkan Argumen Masukan Mutasi

Pelajari cara mengesahkan argumen mutasi yang diterima dalam API GraphQL Spring Boot menggunakan Pengesahan Bean, bagi memastikan hanya data yang bersih dan terbentuk dengan baik sampai ke lapisan data Anda.

Pelajaran 4 daripada 413 langkah

Mengesahkan Argumen Masukan Mutasi ialah pelajaran API GraphQL dengan Spring Boot percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran API GraphQL dengan Spring Boot, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus API GraphQL dengan Spring Boot merangkumi sejumlah 4 pelajaran.

Mengapakah Input Mutasi Perlu Disahkan?

Mutasi mengubah data anda, jadi argumen yang diterimanya mestilah boleh dipercayai. Tanpa pengesahan, klien boleh menghantar nama kosong, harga negatif atau e-mel yang salah format terus ke pangkalan data anda.

Pengesahan input menolak data yang tidak sah lebih awal dan mengembalikan ralat yang jelas sebelum sebarang penyimpanan berlaku.

Pengesahan dalam Kitar Hayat GraphQL

GraphQL sudah mengesahkan bentuk input anda berbanding skema (jenis dan medan yang diperlukan). Namun, ia tidak menyemak peraturan perniagaan seperti 'harga mesti positif'.

Lapisan semantik itu ialah tanggungjawab anda, dan Pengesahan Bean Spring amat sesuai untuk tujuan ini.

Anotasi Pengesahan Bean

Spring Boot disertakan dengan Jakarta Bean Validation. Anotasi yang biasa digunakan:

  • @NotNull, @NotBlank untuk nilai yang diperlukan
  • @Size untuk menetapkan had panjang
  • @Min, @Max, @Positive untuk nombor
  • @Email untuk format e-mel

Menganotasi Kelas Input

Petakan jenis input GraphQL kepada rekod atau kelas Java, kemudian tambahkan kekangan pada medannya.

public record CreateBookInput(
    @NotBlank String title,
    @Size(min = 2, max = 60) String author,
    @Positive double price
) {}

Mencetuskan Pengesahan dalam Penyelesai

Tambahkan @Valid pada argumen dalam kaedah mutasi anda. Spring kemudian menyemak setiap kekangan sebelum badan kaedah dijalankan.

@MutationMapping
public Book createBook(@Argument @Valid CreateBookInput input) {
    return bookService.create(input);
}

Perkara yang Berlaku Apabila Gagal

Jika sesuatu kekangan gagal, Spring melontarkan ConstraintViolationException sebelum kod perkhidmatan anda dijalankan. Mutasi tersebut tidak menyimpan apa-apa, sekali gus melindungi lapisan data anda daripada keadaan yang tidak sah.

Mesej Ralat Tersuai

Setiap anotasi menerima atribut message supaya klien melihat maklum balas yang berguna dan bukannya kegagalan umum.

@NotBlank(message = "Title is required")
String title;

Memetakan Pelanggaran kepada Ralat GraphQL

Gunakan DataFetcherExceptionResolver untuk menukar pengecualian pengesahan kepada ralat GraphQL yang kemas, lengkap dengan butiran pada peringkat medan, supaya klien mengetahui dengan tepat input yang salah.

@Override
public GraphQLError resolveToSingleError(Throwable ex, DataFetchingEnvironment env) {
    return GraphqlErrorBuilder.newError(env)
        .errorType(ErrorType.BAD_REQUEST)
        .message(ex.getMessage())
        .build();
}

Pengesah Tersuai

Untuk peraturan yang tidak dapat dinyatakan oleh anotasi terbina dalam, seperti 'ISBN mestilah unik', tulis kekangan tersuai yang melaksanakan ConstraintValidator dan anotasi medan dengannya.

public class IsbnValidator implements ConstraintValidator<ValidIsbn, String> {
    public boolean isValid(String value, ConstraintValidatorContext ctx) {
        return value != null && value.matches("\\d{13}");
    }
}

Mengesahkan Input Bersarang

Apabila input mengandungi objek lain, tandakan medan bersarang itu dengan @Valid juga. Pengesahan kemudiannya merangkumi objek anak tersebut.

public record OrderInput(
    @NotNull @Valid AddressInput shippingAddress,
    @Positive int quantity
) {}

Amalan Terbaik

Pastikan pengesahan boleh dipercayai:

  • Sahkan pada sempadan, sebelum sebarang logik perniagaan
  • Kembalikan mesej khusus medan yang boleh diambil tindakan oleh klien
  • Gunakan semula kelas input untuk mutasi yang berkaitan
  • Pastikan pengesah tersuai tidak menyimpan keadaan dan pantas

Semakan Pantas

Uji pemahaman anda tentang pengesahan mutasi.

Rumusan

Anda telah mempelajari cara mengesahkan input mutasi:

  • GraphQL menyemak bentuk; anda menguatkuasakan peraturan perniagaan
  • Anotasikan kelas input dengan kekangan Bean Validation
  • Gunakan @Valid dalam penyelesai untuk mencetuskan semakan
  • Petakan pelanggaran kepada ralat GraphQL yang kemas
  • Tulis pengesah tersuai dan gunakan pengesahan berantai dengan @Valid bersarang

Mutasi yang disahkan memastikan lapisan data anda selamat dan kemas.

Percuma untuk bermula

Pelajari API GraphQL dengan Spring Boot dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Mengesahkan Argumen Masukan Mutasi” percuma?

Ya — teks penuh “Mengesahkan Argumen Masukan Mutasi” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus API GraphQL dengan Spring Boot, tingkat taraf kepada CoddyKit PRO. Kursus API GraphQL dengan Spring Boot merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Mengesahkan Argumen Masukan Mutasi”?

Pelajari cara mengesahkan argumen mutasi yang diterima dalam API GraphQL Spring Boot menggunakan Pengesahan Bean, bagi memastikan hanya data yang bersih dan terbentuk dengan baik sampai ke lapisan da… Anda berlatih API GraphQL dengan Spring Boot menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan API GraphQL dengan Spring Boot?

Tiada pengalaman terdahulu diperlukan. Pembelajaran API GraphQL dengan Spring Boot di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Mengesahkan Argumen Masukan Mutasi” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran API GraphQL dengan Spring Boot ini?

Ya. Setiap pelajaran API GraphQL dengan Spring Boot menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Memahami Mutasi GraphQL
  2. Mencipta Data dengan Mutasi
  3. Mengemas Kini dan Memadam Data
  4. Mengesahkan Argumen Masukan Mutasi
← Kembali ke API GraphQL dengan Spring Boot