Distribusi file definisi API Scaife ini termasuk file yang diformat YAML, JSON, dan HTML. Di sebagian besar rilis, ada satu file dalam setiap format file untuk masing -masing dari lima modul scaife.
Dalam rilis SCAIFE APIS Maret 2021, kami hanya merilis file YAML. Rilis ini memiliki semua modul kami yang diperbarui menggunakan format OpenAPI versi 3. Di masa depan, kami juga akan memperbarui skrip kami yang melakukan pembuatan kode otomatis ke JSON dan HTML, untuk bekerja dengan OpenAPI versi 3.
File YAML menentukan Analisis Kode Sumber Lingkungan Kerangka Kerja Terpadu (SCAIFE) Definisi API [1, 2, 3, 5], dalam format yang dapat dengan mudah digunakan pengembang untuk melihat, memodifikasi, dan secara otomatis menghasilkan kode dari (misalnya, dengan editor-swagger-editor dan alat-alat yang angkuh [4]). File YAML hampir seluruhnya dibuat secara manual oleh pengembang SEI. Satu-satunya hal yang dihasilkan secara otomatis oleh alat-alat kesombongan dalam file YAML adalah beberapa contoh.
File JSON dihasilkan secara otomatis dengan menjalankan Swagger-Codegen pada file SWAGGER.YAML, karena beberapa pengembang lebih suka melihat API di JSON atau memiliki alat pembuatan kode yang bekerja paling baik dengan JSON.
File HTML juga menentukan definisi SCAIFE API, dalam format yang dapat dibaca oleh orang yang lebih suka untuk tidak (atau tidak memiliki alat untuk) membaca file YAML. File HTML dapat dilihat di browser web standar apa pun. File HTML berisi hyperlink, dan whitepaper yang direferensikan di bawah ini memberikan panduan tentang cara memahami file HTML.
Scaife adalah arsitektur yang mendukung klasifikasi dan prioritas peringatan analisis statis. Ini dirancang sehingga berbagai macam alat analisis statis dapat berintegrasi dengan sistem menggunakan definisi API yang kami kembangkan. Pada versi SCAIFE API 2.0.0, kami telah menambahkan panggilan API untuk mengaktifkan Scaife untuk menerima pembaruan tentang komitmen kode dan output analisis statis baru dari server integrasi kontinu (CI). Kami berharap API menarik bagi organisasi yang mengembangkan dan/atau meneliti alat analisis statis, agregator audit peringatan analisis statis, dan kerangka audit peringatan analisis statis lainnya. Definisi API scaife ini dapat dirujuk oleh pengembang, untuk membantu mereka memperkirakan upaya pengembangan yang diperlukan untuk memodifikasi alat organisasi mereka untuk membuat dan menanggapi panggilan API Scaife. Juga, definisi API ini sedang diterbitkan dengan tujuan menghasilkan umpan balik dari pengembang dan organisasi yang tertarik untuk mengimplementasikan SCAIFE API, untuk membantu meningkatkan API Scaife agar menjadi lebih mudah digunakan oleh pengembang untuk berbagai alat analisis statis. Sistem prototipe yang mengimplementasikannya telah didistribusikan ke kolaborator proyek penelitian.
Arsitektur scaife yang ditunjukkan pada gambar termasuk lima server. Sistem ini modular, dirancang sehingga setiap modul dapat dipakai oleh alat/perangkat lunak yang berbeda sementara sistem keseluruhan harus mempertahankan fungsionalitas yang sama. Modul UI memiliki front-end GUI yang memungkinkan tampilan peringatan analisis statis pencemaran nama baik (FFSA) dan menyimpan proyek-proyek lokal. Arsitektur scaife dimaksudkan untuk memungkinkan berbagai alat FFSA dan alat agregator peringatan untuk mendapatkan fungsionalitas klasifikasi dan prioritas dengan berinteraksi sebagai modul UI dengan sisa sistem scaife. Alat -alat ini harus instantiate panggilan API modul UI ke server lain, untuk melakukannya. Modul DataHub menyimpan data (alat, peringatan, proyek, meta-data test suite, ajudicatons, dll.) Dari satu atau lebih modul UI dan mengadili beberapa meta-alert. Modul statistik membuat, menjalankan, dan menyimpan pengklasifikasi dan algoritma heuristik (pembelajaran aktif) adaptif dan algoritma hyper-parameter otomatis. Modul prioritas menyimpan rumus prioritas dan bidang prioritas yang diunggah pengguna. Modul pendaftaran digunakan untuk otentikasi dan kontrol akses. Ini menghasilkan token pendaftaran, ditambah lagi menyediakan otentikasi dan otorisasi dasar untuk server lain.
Pilih salah satu dari lima modul untuk mulai memeriksa.: Sebagian besar alat FFSA dan pengembang alat agregator peringatan akan paling tertarik dengan definisi API modul UI. Untuk mengaktifkan alat mereka untuk berinteraksi dengan sistem scaife, alat mereka perlu instantiate API modul UI. Namun, beberapa peneliti/pengembang fokus pada peningkatan klasifikasi, pembelajaran aktif, dan optimasi hiper-parameter otomatis sebaliknya ingin fokus pada API modul statistik. Mereka dapat mengembangkan algoritma baru dan secara modular menggabungkannya dalam prototipe yang telah kami kembangkan (jika mereka adalah kolaborator penelitian kami) atau sekadar memodifikasi alat mereka sendiri untuk membuat instantiasi API modul statistik dan kemudian berinteraksi dengan sistem scaife dengan modul lain yang dikembangkan oleh orang yang berbeda (EG, untuk modul UI mereka dapat menggunakan versi skala yang kami kembangkan untuk modulal kerja dengan modulal). Demikian pula, beberapa peneliti/pengembang memiliki fokus pada peningkatan kinerja, keamanan, ketahanan, dan skalabilitas penyimpanan data agregat dan akhirnya yang diharapkan menjadi besar. Orang -orang itu akan ingin fokus pada API modul DataHub. Kami mengharapkan lebih sedikit peneliti/pengembang untuk mengimplementasikan modul pendaftaran atau prioritas. Namun, API mereka masih akan berguna untuk ditinjau, karena server lain perlu berinteraksi dengan mereka baik dalam peran klien atau server.
Jika Anda bisa, kami mendorong Anda untuk menggunakan editor Sumber Open-Source (dan gratis) [4] atau alat tampilan dan pengeditan API yang serupa. Buka file definisi API (.yaml atau .json) di dalamnya. Editor Swagger menyediakan cara yang ramah pengguna untuk melihat, melakukan tes sederhana, dan memodifikasi definisi API.
Jika tidak, lihat file definisi API HTML di browser web. Dengan cara ini, model dan metode dapat diakses dengan mengikuti hyperlink yang terkait dengan masing -masing sumber daya di bagian definisi API SCAIFE di bawah ini.
Setiap bagian definisi API dikategorikan berdasarkan modul sumber dan tujuan panggilan API. Misalnya, bagian registrasi model cepat dan modul login API hanya berisi satu kategori panggilan API di bawah label uitoregistrasi. Sumber (permintaan) panggilan API berasal dari modul UI, dan panggilan API diteruskan ke tujuan - modul pendaftaran. Model data didefinisikan di bagian bawah file.
Semoga Anda tidak hanya akan memeriksa API, Anda akan menggunakannya untuk mengintegrasikan alat atau kode Anda ke dalam sistem scaife. Anda dapat secara otomatis menghasilkan kode dari definisi YAML atau JSON API dari salah satu modul scaife, menggunakan Swagger codegen [4] atau alat serupa. Ini tidak hanya memiliki manfaat dari pengembangan kode yang mempercepat dan mengotomatiskan, tetapi juga memastikan bahwa kode membuat SCAIFE API. Jika Anda memiliki alat yang ingin Anda hasilkan kode klien (artinya, Anda ingin kode yang akan melakukan panggilan ke server scaife yang ditentukan dalam definisi API server itu), alat -alat seperti Swagger Codegen akan menghasilkan kode dalam berbagai macam bahasa. Anda dapat memasukkan kode klien yang dihasilkan ke kode Anda sendiri di tempat yang tepat, dan menggunakan variabel Anda sendiri sebagai parameter. Demikian pula, Anda dapat secara otomatis menghasilkan kode server untuk salah satu modul scaife, termasuk stub fungsi pengontrol untuk masing -masing panggilan API ke server yang kemudian Anda akan menyempurnakan kode internal.
Catatan Khusus untuk Peninjau API: