Python Pyramid

Testing

Pengujian API Pyramid Framework

Pengujian API dengan curl

Sekarang kita akan menguji API yang telah dibuat menggunakan curl. Pastikan server Pyramid sedang berjalan sebelum melakukan pengujian.

Menjalankan Server

Jika server belum berjalan, jalankan dengan perintah:

pserve development.ini --reload

Pengujian dengan curl di Linux/macOS

Mendapatkan Daftar Mahasiswa (GET)

GET - Mendapatkan Semua Mahasiswa
curl -X GET http://localhost:6543/api/mahasiswa

Response yang diharapkan:

{
  "mahasiswas": [
    {
      "id": 1,
      "nim": "12345",
      "nama": "Budi Santoso",
      "jurusan": "Teknik Informatika",
      "tanggal_lahir": "2000-05-15",
      "alamat": "Jl. Merdeka No. 123, Bandung"
    },
    {
      "id": 2,
      "nim": "54321",
      "nama": "Siti Aminah",
      "jurusan": "Sistem Informasi",
      "tanggal_lahir": "2001-08-22",
      "alamat": "Jl. Mawar No. 45, Jakarta"
    }
  ]
}

Mendapatkan Detail Mahasiswa (GET)

GET - Detail Satu Mahasiswa
curl -X GET http://localhost:6543/api/mahasiswa/1

Response yang diharapkan:

{
  "mahasiswa": {
    "id": 1,
    "nim": "12345",
    "nama": "Budi Santoso",
    "jurusan": "Teknik Informatika",
    "tanggal_lahir": "2000-05-15",
    "alamat": "Jl. Merdeka No. 123, Bandung"
  }
}

Menambahkan Mahasiswa Baru (POST)

POST - Tambah Mahasiswa Baru
curl -X POST http://localhost:6543/api/mahasiswa \
-H "Content-Type: application/json" \
-d '{
  "nim": "67890",
  "nama": "Ahmad Fadli",
  "jurusan": "Teknik Elektro",
  "tanggal_lahir": "2001-11-05",
  "alamat": "Jl. Mawar No. 10, Surabaya"
}'

Response yang diharapkan:

{
  "success": true,
  "mahasiswa": {
    "id": 3,
    "nim": "67890",
    "nama": "Ahmad Fadli",
    "jurusan": "Teknik Elektro",
    "tanggal_lahir": "2001-11-05",
    "alamat": "Jl. Mawar No. 10, Surabaya"
  }
}

Mengupdate Data Mahasiswa (PUT)

PUT - Update Mahasiswa
curl -X PUT http://localhost:6543/api/mahasiswa/1 \
-H "Content-Type: application/json" \
-d '{
  "jurusan": "Informatika",
  "alamat": "Jl. Melati No. 5, Bandung"
}'

Response yang diharapkan:

{
  "success": true,
  "mahasiswa": {
    "id": 1,
    "nim": "12345",
    "nama": "Budi Santoso",
    "jurusan": "Informatika",
    "tanggal_lahir": "2000-05-15",
    "alamat": "Jl. Melati No. 5, Bandung"
  }
}

Menghapus Data Mahasiswa (DELETE)

DELETE - Hapus Mahasiswa
curl -X DELETE http://localhost:6543/api/mahasiswa/3

Response yang diharapkan:

{
  "success": true,
  "message": "Mahasiswa dengan id 3 berhasil dihapus"
}

Pengujian dengan curl di Windows

Untuk pengguna Windows, gunakan syntax curl berikut dengan escape character yang berbeda:

GET Request
curl -X GET http://localhost:6543/api/mahasiswa
POST Request
curl -X POST http://localhost:6543/api/mahasiswa `
-H "Content-Type: application/json" `
-d '{\"nim\": \"67890\", \"nama\": \"Ahmad Fadli\", \"jurusan\": \"Teknik Elektro\", \"tanggal_lahir\": \"2001-11-05\", \"alamat\": \"Jl. Mawar No. 10, Surabaya\"}'
PUT Request
curl -X PUT http://localhost:6543/api/mahasiswa/1 `
-H "Content-Type: application/json" `
-d '{\"jurusan\": \"Informatika\", \"alamat\": \"Jl. Melati No. 5, Bandung\"}'
DELETE Request
curl -X DELETE http://localhost:6543/api/mahasiswa/3
GET Request
curl -X GET http://localhost:6543/api/mahasiswa
POST Request
curl -X POST http://localhost:6543/api/mahasiswa -H "Content-Type: application/json" -d "{\"nim\": \"67890\", \"nama\": \"Ahmad Fadli\", \"jurusan\": \"Teknik Elektro\", \"tanggal_lahir\": \"2001-11-05\", \"alamat\": \"Jl. Mawar No. 10, Surabaya\"}"
PUT Request
curl -X PUT http://localhost:6543/api/mahasiswa/1 -H "Content-Type: application/json" -d "{\"jurusan\": \"Informatika\", \"alamat\": \"Jl. Melati No. 5, Bandung\"}"
DELETE Request
curl -X DELETE http://localhost:6543/api/mahasiswa/3

Alternatif Tools untuk Pengujian API

Selain curl, Kalian dapat menggunakan tools lain yang lebih mudah untuk pengujian API:

1. Browser (untuk GET Request)

Untuk request GET sederhana, Kalian bisa langsung membuka URL di browser:

  • http://localhost:6543/api/mahasiswa
  • http://localhost:6543/api/mahasiswa/1

2. Postman

Postman adalah aplikasi desktop dengan antarmuka grafis yang memudahkan pengujian API:

  1. Download Postman dari https://www.postman.com/downloads/
  2. Buat request baru dengan method yang diinginkan (GET, POST, PUT, DELETE)
  3. Masukkan URL endpoint
  4. Untuk POST/PUT, pilih tab "Body" → "raw" → "JSON" dan masukkan data JSON
  5. Klik "Send" untuk mengirim request

3. Insomnia

Alternatif Postman yang lebih ringan:

4. VS Code REST Client Extension

Jika menggunakan VS Code, install extension "REST Client":

  1. Install extension "REST Client" di VS Code
  2. Buat file baru dengan ekstensi .http atau .rest
  3. Tulis request dalam format:
test-api.http
### Get all mahasiswa
GET http://localhost:6543/api/mahasiswa

### Get detail mahasiswa
GET http://localhost:6543/api/mahasiswa/1

### Add new mahasiswa
POST http://localhost:6543/api/mahasiswa
Content-Type: application/json

{
  "nim": "67890",
  "nama": "Ahmad Fadli",
  "jurusan": "Teknik Elektro",
  "tanggal_lahir": "2001-11-05",
  "alamat": "Jl. Mawar No. 10, Surabaya"
}

### Update mahasiswa
PUT http://localhost:6543/api/mahasiswa/1
Content-Type: application/json

{
  "jurusan": "Informatika",
  "alamat": "Jl. Melati No. 5, Bandung"
}

### Delete mahasiswa
DELETE http://localhost:6543/api/mahasiswa/3
  1. Klik "Send Request" di atas setiap request untuk menjalankannya

Troubleshooting API Testing

Jika mengalami masalah saat mengakses API:

  • Pastikan server Pyramid sedang berjalan
  • Periksa port yang digunakan (default: 6543)
  • Periksa log error di terminal tempat server berjalan
  • Gunakan http://127.0.0.1:6543 jika localhost tidak berfungsi
  • Pastikan tidak ada aplikasi lain yang menggunakan port 6543