Anotasi @Valid dapat mewujudkan verifikasi data. Anda dapat mendefinisikan entitas dan menambahkan aturan verifikasi ke properti entitas. Ketika API menerima data, entitas Anda akan mengaktifkan fungsi verifikasi. Kode spesifiknya adalah sebagai berikut, yang merupakan aplikasi paling dasar:
kesatuan:
Public Class DepartmentDto {@ApimodelProperty ("ID") Private String ID; @ApimodelProperty ("ID Superior") Private String ParentID; @Apimodelproperty ("nomor") @notblank (pesan = "Nomor departemen tidak dapat kosong.") Kode string pribadi; @Apimodelproperty ("number") @notblank (pesan = "Nama departemen tidak dapat kosong.") Nama string pribadi; @ApImoDelProperty ("Karyawan> Karyawan = ArrayList baru <> ();}Antarmuka yang tenang:
@PostMapping () Respons publik <ClientAccount> InitialAccount (@Apiparam ("Nomor Pelanggan") @PathVariable Code String, @Apiparam ("Periode Pendaftaran") @PathVariable Yearstonth AccountPeriod, @Apiparam ("Request Body") @valid @requestbody Permintaan <dentariesDoCt> {"request body") @valid @RequestBody Permintaan <dentarionDto> {"request body") @valid @RequestBody Permintaan <dentarionDto> {"request body" @valid @requestbody permintaan <dentes departmentDoin> {"request bod" AccountPeriod, request.getoperator (), request.getBody ()); {} Dalam kode di atas, kami menambahkan cek untuk Request<DepartmentDto> . Selama tes, jika departemen Anda yang Anda miliki. Mari kita lihat skenario lain di bawah ini.
Entitas yang perlu diverifikasi adalah properti nyata lainnya
Kita juga perlu melihat bahwa objek besar, seperti benda kecil lainnya yang dienkapsulasi, terdiri dari, misalnya, karyawan di bawah departemen. Jika Anda perlu memverifikasi efektivitas karyawan, bagaimana Anda harus mencapainya? Jika kami tidak memodifikasi kode sumber dan hasil eksekusi negatif, itu tidak akan memverifikasi objek karyawan, tetapi hanya akan menargetkan properti objek lapisan pertama.
Kami dapat memverifikasi atribut ini dengan menambahkan @valid ke @valid
Public Class DepartmentDto {@ApimodelProperty ("ID") Private String ID; @ApimodelProperty ("ID Superior") Private String ParentID; @Apimodelproperty ("nomor") @notblank (pesan = "Nomor departemen tidak dapat kosong.") Kode string pribadi; @Apimodelproperty ("number") @notblank (pesan = "Nama departemen tidak dapat kosong.") Nama string pribadi; @Valid @apimodelproperty ("karyawan> karyawan = arraylist baru <> ();}Mari kita lihat hasil verifikasi di bawah ini. 400 kesalahan kami dapat menjadi output secara normal di bawah tes unit!
@Test public void initialaccount_empreyee_name_empty () {list <eploipleee> Karyawan = ArrayList baru <> (); karyawan.add (karyawan.builder () .name ("") .email ("[email protected]") .idnumber ("110111198203182012") .build ()); Daftar <deptephydto> Departemen = Daftar ArrayList baru <> (); Departemen. ClientAccountdto clientAccountdto = clientaccountdto.builder () .name ("customer") .departments (departemen) .build (); Permintaan <ClientAccountDTO> request = buildRequest (ClientAccountDTO); Api.post () .uri ("/v1/12345/2018-03") .body (bodyinserters.fromObject (permintaan)). exchange () .expectstatus (). ISequalto (400). ExpectBody () .jsonpath ("$. Kesalahan [0] .Message"). }Hasilnya adalah sebagai berikut, tes lulus
Jika diuji, itu adalah ISOK, karena nama pengguna kosong, pesan kesalahan akan muncul
API.POST () .URI ("/V1/12345/2018-03") .body (BodyInserters.FromObject (request)) .exchange () .ExpectStatus (). isok ();Anda dapat memeriksa hasilnya informasi prompt
Meringkaskan
Di atas adalah verifikasi dari jenis bersarang oleh anotasi springboot @valid yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!