Banyak aplikasi ML yang memanfaatkan konsep API agar modul AI dapat diakses oleh orang lain tanpa khawatir kode diambil. Hal ini terjadi karena API hanya menyediakan gerbang input/output yang bisa diakses orang lain. Sebagian besar memerlukan KEY agar tidak sembarangan orang menggunakannya, misalnya ChatGPT, Twitter, dan lain-lain yang kebanyakan subscribe terlebih dahulu.
Biasanya kita mencoba server API dan pengakses di komputer/laptop yang sama dan tidak ada masalah. Namun jika server API di lokasi yang berbeda dengan pengakses, biasanya ditolak oleh server API jika tidak dilengkapi dengan Cross-Origin Resource Sharing (CORS).
Bagaimana cara mengatasinya? Jawabannya adalah CORS. Berikut contoh penggunaan CORS pada Flask:
from flask import Flask, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app, resources={r”/api/*”: {“origins”: “*”}})
# Contoh endpoint
@app.route(‘/api/data’, methods=[‘GET’])
def get_data():
return jsonify({‘message’: ‘Data dari API’})
if __name__ == ‘__main__’:
app.run(debug=True, host=’0.0.0.0′)
Di sini folder /api/ diset CORS agar bisa diakses public, dengan lokasi endpoint pada /api/data. Untuk mengujinya buat aplikasi Docker dari kode di atas dan jalankan.