Jadual Kandungan
Apakah itu ByteChef?
Ciri Utama
Penerangan
Jenis perubahan
Bagaimana Ini Telah Diuji?
Senarai semak:
Rumah Java javaTutorial Mencelup ke dalam Projek Java

Mencelup ke dalam Projek Java

Nov 03, 2024 am 09:05 AM

Untuk sumbangan Hacktoberfest terakhir saya, saya telah mengusahakan projek yang dipanggil Bytechef. Bytechef ialah penyepaduan API kod rendah dan platform automasi aliran kerja. Ia membolehkan anda berinteraksi dengan senarai besar perkhidmatan yang disokong melalui API mereka dengan menambah dan menyambungkan pelbagai komponen untuk mencipta aliran kawalan yang boleh menggunakan respons daripada API.

Dipping Into a Java Project bytechefhq / bytechef

Penyepaduan API sumber terbuka, kod rendah, platform automasi aliran kerja & aliran kerja. Integrasikan organisasi anda atau produk SaaS anda dengan mana-mana API pihak ketiga

Dipping Into a Java Project

Platform automasi aliran kerja dan penyepaduan API

Laman Web - Dokumentasi - Discord - Twitter

Dipping Into a Java Project Dipping Into a Java Project

KEMASKINI: ByteChef sedang dalam pembangunan aktif. Kami berada di peringkat alfa, dan beberapa ciri mungkin hilang atau dilumpuhkan.

Dipping Into a Java Project

Apakah itu ByteChef?

ByteChef ialah sumber terbuka, kod rendah, penyepaduan API boleh dilanjutkan dan platform automasi aliran kerja. ByteChef boleh membantu anda sebagai:

  • Penyelesaian automasi yang membolehkan anda menyepadukan dan membina aliran kerja automasi merentas apl SaaS, API dalaman dan pangkalan data anda.
  • Penyelesaian terbenam yang disasarkan secara eksplisit untuk produk SaaS, membolehkan pelanggan anda menyepadukan aplikasi yang mereka gunakan dengan produk anda.

Ciri Utama

  • Editor Aliran Kerja UI Intuitif: bina dan gambarkan aliran kerja melalui editor UI dengan menyeret dan melepaskan komponen serta menentukan hubungannya.
  • Aliran Kerja Didorong Peristiwa & Berjadual: mengautomasikan aliran kerja dipacu peristiwa berjadual dan masa nyata melalui definisi pencetus mudah.
  • Kawalan aliran berbilang: gunakan julat pelbagai kawalan aliran seperti keadaan, suis, gelung, setiap satu, selari, dsb.
  • Kod Terbina Dalam…
Lihat di GitHub

Tugas saya ialah menambah ciri baharu pada komponen untuk perkhidmatan pangkalan data yang dipanggil Baserow. Ciri yang perlu saya usahakan ialah "tindakan" (iaitu fungsi komponen) yang membenarkan komponen mengemas kini baris dalam pangkalan data.

Baserow - Kemas kini tindakan Baris #1645

Dipping Into a Java Project
monikakuster disiarkan pada

Laksanakan tindakan Baris Kemas Kini untuk komponen Baserow untuk membenarkan pengguna mengubah suai baris tertentu dalam jadual dalam pangkalan data Baserow mereka.

Sifat tindakan:

  • id jadual - id jadual yang anda ingin kemas kini barisnya
  • id baris - id baris yang ingin anda kemas kini
  • nama_bidang_pengguna - Boolean yang menunjukkan sama ada nama medan yang dikembalikan oleh titik akhir ini hendaklah nama sebenar medan
  • medan - peta medan dan nilai baharunya untuk jadual. Sifat ini menentukan data yang akan dikemas kini dalam baris, membenarkan pengguna menukar berbilang medan dalam satu operasi.

Output:

  • baris - objek baris dikemas kini yang mengandungi semua medan data dan nilai yang dikaitkan dengan baris dalam jadual yang ditentukan

Rujukan Dokumentasi: https://baserow.io/api-docs

</div>
<div class="gh-btn-container"><a class="gh-btn" href="https://github.com/bytechefhq/bytechef/issues/1645">View on GitHub</a></div>
Salin selepas log masuk


Saya telah menggunakan Java dengan sangat minima sebelum mendaftar untuk isu ini. Saya hanya pernah melakukan program JavaFX kecil sebagai sebahagian daripada kursus sekolah, tetapi saya ingin mengetahui lebih lanjut. Saya telah mempelajari sedikit sebanyak pada masa saya sendiri jadi saya mempunyai beberapa tahap kebiasaan dengan konsep seperti pakej, pengubah suai akses, kebergantungan dan Gradle, yang merupakan alat binaan yang digunakan oleh projek itu. Mengetahui perkara ini pasti menjadikan ia lebih kurang menakutkan untuk menyertai projek ini. Saya memahami struktur projek kerana saya telah mengetahui cara projek Gradle terdiri daripada subprojek dan subpakej masing-masing dengan konfigurasi binaan yang berbeza.

Rakan sekelas saya Arina menyedari kami berdua sedang mengerjakan projek yang sama, dan dia cukup baik hati memberi saya beberapa petunjuk dengan memautkan kepada dokumentasi pembangun untuk menambahkan komponen dan kepada tindakan yang telah ditentukan untuk komponen itu, yang bermaksud saya tidak perlu melihat sendiri repositori untuk mencari fail/direktori yang berkaitan. Tetapi jika saya terpaksa, saya akan menggunakan git grep, carian kod GitHub atau carian IntelliJ. Saya menggunakan git blame untuk menyemak sejarah komponen yang akan saya kerjakan dan melihat bahawa semuanya telah dibangunkan dalam satu komit.

Dokumen penyumbang projek sangat mudah diikuti dengan arahan terperinci yang dibentangkan langkah demi langkah. Tetapi projek itu nampaknya sangat muda - saya perhatikan beberapa fail README yang baru sahaja berkata // TODO.

Saya cuba menyusun dan menjalankan program sebelum saya membuat perubahan untuk melihat cara ia berfungsi, tetapi ia adalah proses yang kasar. Berikut ialah imbasan nota yang saya ambil:

Dipping Into a Java Project

Selepas ia selesai menyusun (telah mengambil masa lebih sejam), saya menjalankannya supaya saya boleh menyemak komponen sedia ada. Saya cuba membuat akaun untuk menggunakan klien tetapi ia tidak membenarkan saya, jadi saya kembali ke dokumen penyumbang dan mendapati bahawa ia disertakan dengan akaun pentadbir yang boleh digunakan untuk pembangunan, yang saya fikir dicipta apabila anda menjalankan docker -karang.

Setelah saya log masuk, saya cuba membuat komponen Baserow, tetapi pelanggan agak perlahan jadi saya secara tidak sengaja membuat pendua. Apabila saya cuba memadamkannya, pelanggan membeku, jadi saya menekan muat semula, dan mula mendapat ralat pelayan dan pelanggan tamat masa. Saya cuba memulakan semula pelayan dan pelanggan tetapi ia mengambil masa yang lama - pada pandangan saya ia akan mengambil masa sejam lagi. Selepas menunggu kira-kira 16 minit, saya memanggilnya semalam dan memutuskan untuk mengusahakannya kemudian.

4 hari kemudian

Saya takut untuk kembali ke projek ini dan terpaksa berhadapan dengan masa penyusunan selama sejam tetapi dengan Hacktoberfest semakin hampir tamat saya tidak mempunyai banyak pilihan. Jadi bayangkan saya terkejut apabila projek dibina tanpa ralat dan siap dan berjalan dalam masa kurang daripada lima minit. Apa yang berubah? Saya tidak tahu.

Jadi saya melompat pada pelanggan dan menemui komponen Baserow.

Dipping Into a Java Project
Rajah - Komponen Baserow dan tindakan sedia ada padanya

Untuk menambah tindakan Buat Baris, saya perlu melihat dokumentasi API Baserow, yang dipautkan kepada saya oleh penyelenggara. Saya terpaksa membuat akaun Baserow untuk melihat dokumen yang saya fikir agak ganjil tetapi ia juga bukan masalah besar.

Jadi saya menguji tindakan sedia ada, "Buat Baris", dan menghadapi pepijat di mana seluruh halaman bertukar menjadi mesej ralat. Saya fikir saya telah memasukkan nilai yang tidak dijangka tetapi saya kemudiannya mendapati pepijat ini telah dijejaki oleh isu berasingan yang tidak berkaitan dengan saya.

Pada percubaan ujian berikutnya, tindakan Cipta Baris berjaya, jadi saya memutuskan bahawa ia adalah calon yang baik untuk mengkaji untuk mencuba dan memahami cara tindakan dibuat. Saya mengikuti bersama dengan merujuk silang isu, tindakan sedia ada dan dokumen penyumbang.

Saya mengetahui bahawa tindakan dibuat dengan mentakrifkan parameter input yang diperlukan, skema output dan kaedah yang menentukan proses sebenar tindakan yang dilakukan.

Dalam tindakan Buat Baris, saya melihat terdapat kaedah untuk mendapatkan medan untuk baris jadual, yang digunakan untuk mentakrifkan parameter input. Saya sedar saya boleh menggunakan ini dalam tindakan saya, tetapi ia dinamakan seolah-olah ia hanya bertujuan untuk digunakan untuk tindakan Buat Baris. Saya fikir ia masuk akal untuk digunakan, jadi saya terus menggunakannya dan memutuskan untuk memberitahu penyelenggara.

Apabila membaca dokumen API Baserow, saya mengetahui bahawa untuk mengemas kini baris anda menggunakan kaedah HTTP yang dipanggil "PATCH", yang saya tidak tahu kewujudannya. PATCH adalah seperti PUT tetapi bukannya menggantikan sumber, ia mengubah sebahagiannya. Perkara yang menarik.

Jadi saya perlu menulis tindakan saya, dan saya dapat mengangkat hampir keseluruhan kod daripada tindakan sedia ada. Saya hanya perlu membuat sedikit pelarasan pada parameter yang diterimanya (saya menambah ID baris untuk mengenal pasti baris untuk dikemas kini), skema output dan kaedah yang dipanggil (menukar titik akhir dan kaedah HTTP). Untuk membenarkan ID baris saya perlu menambah pemalar pada fail dalam pemalar/ subdirektori yang mengandungi semua pemalar yang berkaitan dengan komponen Baserow.

Saya perasan semua fail kod sumber sedia ada mempunyai pengepala lesen, jadi saya menyalinnya ke dalam fail saya juga. Saya mengatur import saya, memformatkan kod saya dan sudah tiba masanya untuk mengujinya secara manual.

Pada ketika ini saya perasan perihalan untuk tindakan Buat Baris (yang sudah wujud) adalah salah - ia mengatakan ia mencipta baris dalam pangkalan data sampel dalam Baserow yang dirujuk dengan nama dan bukannya hanya mengatakan anda boleh mencipta sebaris. Saya membuat nota untuk menyebut perkara ini kepada penyelenggara juga:

Dipping Into a Java Project
Rajah - Penerangan yang salah untuk komponen Cipta Baris

Tindakan saya muncul dalam diri pelanggan dan secara visual semuanya kelihatan baik:

Tajuk dan penerangan dipaparkan:
Dipping Into a Java Project

Sifat (iaitu parameter input) muncul:

Dipping Into a Java Project

Aliran kerja berjalan dengan jayanya dan saya menerima respons yang berjaya:

Dipping Into a Java Project

Dan jadual telah dikemas kini dalam akaun Baserow saya:

Dipping Into a Java Project

Saya berpuas hati dengan perubahan saya jadi saya meneruskan dan menjalankan pemformat dan ujian, tetapi ujian gagal, kerana salah satu ujian menjangkakan Komponen Baserow hanya mempunyai satu tindakan padanya. Saya mengemas kini ujian untuk menampung tindakan baharu saya, dan menjalankan skrip yang menjana dokumentasi secara automatik untuk komponen tersebut. Semasa menjalankan semula ujian, mereka lulus, tetapi saya masih perlu menambah ujian unit untuk tindakan saya. Saya melihat ujian unit untuk komponen sedia ada dan dibiarkan menggaru kepala. Saya memutuskan bahawa saya telah mencapai kemajuan yang baik, jadi saya memanggilnya sehari, membuka draf PR dan memberitahu penyelenggara tahu tentang isu yang saya perhatikan.

Keesokan harinya

Walaupun ujian sedia ada kelihatan menakutkan, saya tidak mempunyai banyak pilihan selain menambah satu untuk tindakan saya juga, jadi saya kembali dan cuba memahami apa yang berlaku dalam ujian sedia ada. Saya melihat sedikit perpustakaan ujian yang digunakan - JUnit Jupiter dan Mockito. Saya cuba memecahkannya sedikit demi sedikit dan menggunakan LLM untuk membantu saya memahami perkara yang berlaku pada setiap baris. Tetapi sejujurnya, saya masih mempunyai pemahaman yang samar-samar tentang apa yang sedang berlaku. Saya tahu saya mengejek API Baserow dan memanggil kaedah tindakan saya padanya, tetapi itu adalah tahap pemahaman saya.

Nampaknya, ia sudah cukup bagus. Saya menandai PR saya sedia untuk semakan, dan penyelenggara menerima perubahan saya! Mereka memberikan beberapa maklum balas - saya terlupa mengikuti beberapa bahagian aliran penyumbang walaupun saya telah membacanya. Untuk kali seterusnya, saya harus menyemak dokumen penyumbang sebelum membuat permintaan tarik.

Buat tindakan Baris Kemas Kini untuk komponen Baserow #1656

Dipping Into a Java Project
uday-rana disiarkan pada

Penerangan

Membetulkan #1645

Jenis perubahan

  • Ciri baharu (perubahan tidak pecah yang menambah fungsi)
  • Perubahan ini memerlukan kemas kini dokumentasi

Bagaimana Ini Telah Diuji?

  • Diuji dengan ujian definisi BaserowComponentHandler, yang dikemas kini untuk menampung tindakan baharu.
  • Tindakan yang diuji secara manual melalui pelanggan:

Dipping Into a Java Project

Dipping Into a Java Project

Dipping Into a Java Project

Senarai semak:

  • [x] Kod saya mengikut garis panduan gaya projek ini
  • [x] Saya telah melakukan semakan kendiri kod saya sendiri
  • [ ] Saya telah mengulas kod saya, terutamanya dalam kawasan yang sukar difahami
    • Tiada ulasan yang dianggap perlu kerana tindakan sedia ada tidak termasuk ulasan sama ada
  • [x] Saya telah membuat perubahan yang sepadan pada dokumentasi
  • [x] Perubahan saya tidak menjana amaran baharu
  • [x] Saya telah menambah ujian yang membuktikan pembetulan saya berkesan atau ciri saya berfungsi
  • [x] Ujian unit baharu dan sedia ada lulus secara setempat dengan perubahan saya
Lihat di GitHub

Saya mendapati persediaan awal dan menulis ujian adalah bahagian yang paling menakutkan dalam isu ini. Sebenarnya menambah ciri adalah mudah berbanding. Tetapi perkara yang saya dapati sangat menarik tentang isu ini ialah saya dapat menyumbang kepada projek dalam bahasa yang saya tidak begitu faham, terima kasih kepada dokumen yang diselenggara dengan baik dan kod yang mudah difahami.

Dan itu adalah PR terakhir saya untuk Hacktoberfest 2024! Catatan ringkasan akan datang tidak lama lagi!

Atas ialah kandungan terperinci Mencelup ke dalam Projek Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Adakah perisian keselamatan syarikat menyebabkan aplikasi gagal dijalankan? Bagaimana cara menyelesaikan masalah dan menyelesaikannya? Adakah perisian keselamatan syarikat menyebabkan aplikasi gagal dijalankan? Bagaimana cara menyelesaikan masalah dan menyelesaikannya? Apr 19, 2025 pm 04:51 PM

Penyelesaian masalah dan penyelesaian kepada perisian keselamatan syarikat yang menyebabkan beberapa aplikasi tidak berfungsi dengan baik. Banyak syarikat akan menggunakan perisian keselamatan untuk memastikan keselamatan rangkaian dalaman. …

Bagaimana untuk memudahkan isu pemetaan medan dalam dok sistem menggunakan mapstruct? Bagaimana untuk memudahkan isu pemetaan medan dalam dok sistem menggunakan mapstruct? Apr 19, 2025 pm 06:21 PM

Pemprosesan pemetaan medan dalam dok sistem sering menemui masalah yang sukar ketika melaksanakan sistem dok: bagaimana untuk memetakan medan antara muka sistem dengan berkesan ...

Bagaimana dengan elegan mendapatkan nama pemboleh ubah kelas entiti untuk membina keadaan pertanyaan pangkalan data? Bagaimana dengan elegan mendapatkan nama pemboleh ubah kelas entiti untuk membina keadaan pertanyaan pangkalan data? Apr 19, 2025 pm 11:42 PM

Apabila menggunakan Mybatis-Plus atau Rangka Kerja ORM yang lain untuk operasi pangkalan data, sering diperlukan untuk membina syarat pertanyaan berdasarkan nama atribut kelas entiti. Sekiranya anda secara manual setiap kali ...

Bagaimanakah saya menukar nama kepada nombor untuk melaksanakan penyortiran dan mengekalkan konsistensi dalam kumpulan? Bagaimanakah saya menukar nama kepada nombor untuk melaksanakan penyortiran dan mengekalkan konsistensi dalam kumpulan? Apr 19, 2025 pm 11:30 PM

Penyelesaian untuk menukar nama kepada nombor untuk melaksanakan penyortiran dalam banyak senario aplikasi, pengguna mungkin perlu menyusun kumpulan, terutama dalam satu ...

Bagaimanakah Idea IntelliJ mengenal pasti nombor port projek boot musim bunga tanpa mengeluarkan log? Bagaimanakah Idea IntelliJ mengenal pasti nombor port projek boot musim bunga tanpa mengeluarkan log? Apr 19, 2025 pm 11:45 PM

Mula musim bunga menggunakan versi IntelliJideaultimate ...

Bagaimana cara menukar objek Java dengan selamat ke array? Bagaimana cara menukar objek Java dengan selamat ke array? Apr 19, 2025 pm 11:33 PM

Penukaran objek dan tatasusunan Java: Perbincangan mendalam tentang risiko dan kaedah penukaran jenis cast yang betul Banyak pemula Java akan menemui penukaran objek ke dalam array ...

Platform e-dagang SKU dan Reka Bentuk Pangkalan Data SPU: Bagaimana untuk mengambil kira kedua-dua atribut yang ditakrifkan oleh pengguna dan produk yang tidak berkesudahan? Platform e-dagang SKU dan Reka Bentuk Pangkalan Data SPU: Bagaimana untuk mengambil kira kedua-dua atribut yang ditakrifkan oleh pengguna dan produk yang tidak berkesudahan? Apr 19, 2025 pm 11:27 PM

Penjelasan terperinci mengenai reka bentuk jadual SKU dan SPU di platform e-dagang Artikel ini akan membincangkan isu reka bentuk pangkalan data SKU dan SPU dalam platform e-dagang, terutamanya bagaimana menangani jualan yang ditentukan pengguna ...

Bagaimana dengan elegan mendapatkan syarat pertanyaan bangunan pembolehubah kelas entiti apabila menggunakan tkmybatis untuk pertanyaan pangkalan data? Bagaimana dengan elegan mendapatkan syarat pertanyaan bangunan pembolehubah kelas entiti apabila menggunakan tkmybatis untuk pertanyaan pangkalan data? Apr 19, 2025 pm 09:51 PM

Apabila menggunakan tkmybatis untuk pertanyaan pangkalan data, bagaimana dengan anggun mendapatkan nama pembolehubah kelas entiti untuk membina keadaan pertanyaan adalah masalah biasa. Artikel ini akan ...

See all articles