Bagaimana untuk membuat antara muka API?
API ialah antara muka pengaturcaraan aplikasi, ia boleh difahami sebagai saluran untuk berkomunikasi dengan sistem perisian yang berbeza. Ia pada asasnya adalah fungsi yang telah ditetapkan.
API mempunyai banyak bentuk, yang paling popular ialah menggunakan protokol HTTP untuk menyediakan perkhidmatan (seperti: RESTful), selagi ia memenuhi peraturan boleh digunakan seperti biasa. Pada masa kini, banyak perusahaan menggunakan API yang disediakan oleh pihak ketiga, dan juga menyediakan API untuk pihak ketiga, jadi reka bentuk API juga perlu berhati-hati.
Bagaimana untuk mereka bentuk antara muka API yang baik?
Jelaskan Fungsi
Pada permulaan reka bentuk, anda perlu menyusun fungsi API mengikut titik atau modul fungsi perniagaan untuk menjelaskan bahawa API anda perlu menyediakan.Kosongkan Logik Kod
Pastikan kod anda kemas dan tambahkan ulasan yang diperlukan untuk memastikan antara muka mempunyai satu fungsi. Jika antara muka memerlukan logik perniagaan yang kompleks, adalah disyorkan untuk membahagikannya kepada berbilang antara muka atau merangkum fungsi ke dalam kaedah awam secara bebas untuk mengelakkan terlalu banyak kod dalam antara muka, yang tidak kondusif untuk penyelenggaraan dan lelaran kemudian.Jumlah Semakan Keselamatan yang Diperlukan
Penyelesaian biasa ialah menggunakan tandatangan digital. Tambahkan tandatangan pada setiap permintaan HTTP dan bahagian pelayan mengesahkan kesahihan tandatangan untuk memastikan kesahihan permintaan.Membalak
Pembalakan adalah penting untuk memudahkan penyetempatan masalah tepat pada masanya.Minimumkan Gandingan
API yang baik hendaklah semudah mungkin. Jika gandingan perniagaan antara API terlalu tinggi, adalah mudah untuk menyebabkan pengecualian dalam kod tertentu, mengakibatkan ketiadaan API yang berkaitan. Jadi adalah lebih baik untuk mengelakkan kerumitan hubungan antara API sebanyak mungkin.Kembalikan Kod Status Bermakna
Data kod status hendaklah dibawa dalam data pulangan API. Sebagai contoh, 200 bermakna permintaan adalah normal, 500 bermakna terdapat ralat dalaman dalam pelayan. Mengembalikan kod status biasa adalah baik untuk penyetempatan masalah.Dokumentasi Pembangunan
Memandangkan API disediakan untuk kegunaan pihak ketiga atau dalaman, dokumentasi pembangunan adalah penting, jika tidak, ia tidak akan diketahui oleh orang lain cara menggunakannya.
Dokumentasi pembangunan API yang baik harus mengandungi elemen berikut:
- Penerangan model seni bina API, alatan dan versi pembangunan, kebergantungan sistem dan maklumat persekitaran lain.
- fungsi yang disediakan oleh API.
- Kebergantungan modul API.
- peraturan seruan, nota.
- nota penempatan, dsb.
Bagaimana untuk membangunkan antara muka API?
Jika berpuas hati dengan persekitaran pembangunan, mungkin kurang daripada 10 minit, anda boleh melengkapkan pembangunan antara muka API yang mudah (hanya demo).
Sebelum pembangunan, anda perlu memasang JDK, Maven dan IDE.
Buat projek baharu berdasarkan Spring Boot. Untuk menyelesaikan dengan cepat, saya memilih untuk menggunakan (start.spring.io) untuk menjana projek saya. Melalui [Search dependencies to add] anda boleh memilih pakej. Saya hanya mengimport Spring MVC, jika anda perlu mengakses pangkalan data melalui Mybatis, anda juga boleh memilih di sini, kemudian klik untuk menjana projek.
Nyahzip projek yang dimuat turun dan masukkan ke dalam IDE anda, kemudian untuk mencipta kelas baharu: com.wukong.apidemo.controller.ApiController.
Tambahkan kaedah dalam kelas ini, penggunaan utama tag @RestController, @RequestMapping, @ResponseBody.
Antara muka API yang paling mudah telah dilengkapkan. Kami boleh memulakan projek, mengakses alamat antara muka yang sepadan dan mendapatkan maklumat pemulangan antara muka.
Kami boleh menggunakan swagger untuk membantu kami menjana dokumentasi antara muka dan mengoptimumkan antara muka API.
Cara yang lebih cekap untuk membuat antara muka API?
Kelalang Python dan Java Spring Boot boleh digunakan untuk mencipta antara muka API dengan cekap.
Spring Boot telah memudahkan proses pembangunan kepada yang mudah. Untuk python, saya mengesyorkan pakej pihak ketiga untuk membangunkan antara muka API: fastapi.
Ia adalah alat yang pantas dan cekap dengan ciri berikut:
- Pantas: setanding dengan NodeJS dan Go. Salah satu rangka kerja Python terpantas.
- Pengekodan pantas: meningkatkan kelajuan pembangunan kira-kira 200% hingga 300%.
- Ralat yang lebih sedikit: mengurangkan kira-kira 40% ralat yang disebabkan oleh pembangun.
- Mudah: mudah digunakan dan dipelajari. Kurangkan masa untuk membaca dokumentasi.
- Berasaskan piawai: berdasarkan dan serasi sepenuhnya dengan piawaian terbuka API.
Buat API RESTful dengan Python3 dan Flask(Perkhidmatan Pengujian Antara Muka dan Alat Mockserver)
Bina API RESTful nampaknya merupakan kerja pembangun, malah, terdapat banyak senario di mana pembangun ujian perlu membina API RESTful.
Sesetengah penguji akan membina API RESTful, merampas nama domain sebelah pelayan ke API mereka sendiri dan mengembalikan semua jenis pengecualian dengan tujuan untuk melihat kestabilan klien.
REST: REpresentational State Transfer GET - /api/Category - Retrieve all categories POST - /api/Category - Add a new category PUT - /api/Category - Update a category DELETE - /api/Category - Delete a category GET - /api/Comment - Retrieve all the stored comments POST - /api/Comment - Add new comment
Keperluan:python3.*,PostgreSQL.
REST: REpresentational State Transfer GET - /api/Category - Retrieve all categories POST - /api/Category - Add a new category PUT - /api/Category - Update a category DELETE - /api/Category - Delete a category GET - /api/Comment - Retrieve all the stored comments POST - /api/Comment - Add new comment
Requirements.txt seperti berikut:
Kelalang - rangka kerja mikro untuk python
Flask_restful - sambungan kepada flask untuk membina REST API dengan cepat.
Flask_script - menyediakan sokongan untuk menulis skrip luaran dalam flask.
Flask_migrate - gunakan apl Flask Alembic untuk pemindahan pangkalan data SQLAlchemy.
Marshmallow - untuk jenis data kompleks dan penukaran jenis data python.
Flask_sqlalchemy - sambungan flask yang menambah sokongan untuk SQLAlchemy.
Flask_marshmallow - lapisan tengah antara flask dan marshmallow.
Marshmallow-sqlalchemy - lapisan tengah antara sqlalchemy dan marshmallow.
psycopg - API PostgreSQL untuk python.
Pasang kebergantungan
project/ ├── app.py ├── config.py ├── migrate.py ├── Model.py ├── requirements.txt ├── resources │ └── Hello.py │ └── Comment.py │ └── Category.py └── run.py
Pasang dan Konfigurasi PostgreSQL(Ambil Ubuntu 16.04 sebagai contoh)
# pip3 install -r requirements.txt
Tatarajah
# sudo apt-get update && sudo apt-get upgrade # apt-get install postgresql postgresql-contrib # su - postgres $ createdb api $ createuser andrew --pwprompt #Create User $ psql -d api -c "ALTER USER andrew WITH PASSWORD 'api';"
Mula Pantas
app.py
from flask import Blueprint from flask_restful import Api from resources.Hello import Hello from resources.Category import CategoryResource from resources.Comment import CommentResource api_bp = Blueprint('api', __name__) api = Api(api_bp) # Routes api.add_resource(Hello, '/Hello') api.add_resource(CategoryResource, '/Category') api.add_resource(CommentResource, '/Comment')
sumber/Hello.py
from flask import Blueprint from flask_restful import Api from resources.Hello import Hello api_bp = Blueprint('api', __name__) api = Api(api_bp) # Route api.add_resource(Hello, '/Hello')
run.py
#!/usr/bin/python # -*- coding: utf-8 -*- # Author: xurongzhong#126.com wechat:pythontesting qq:37391319 # CreateDate: 2018-1-10 from flask_restful import Resource class Hello(Resource): def get(self): return {"message": "Hello, World!"} def post(self): return {"message": "Hello, World!"}
Memulakan perkhidmatan
from flask import Flask def create_app(config_filename): app = Flask(__name__) app.config.from_object(config_filename) from app import api_bp app.register_blueprint(api_bp, url_prefix='/api') return app if __name__ == "__main__": app = create_app("config") app.run(debug=True)
Gunakan pelayar untuk melawati: http://127.0.0.1:5000/api/Hello
$ python3 run.py * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 136-695-873
Akses kepada pangkalan data
{ "hello": "world" }
hijrah.py
from flask import Flask from marshmallow import Schema, fields, pre_load, validate from flask_marshmallow import Marshmallow from flask_sqlalchemy import SQLAlchemy ma = Marshmallow() db = SQLAlchemy() class Comment(db.Model): __tablename__ = 'comments' id = db.Column(db.Integer, primary_key=True) comment = db.Column(db.String(250), nullable=False) creation_date = db.Column(db.TIMESTAMP, server_default=db.func.current_timestamp(), nullable=False) category_id = db.Column(db.Integer, db.ForeignKey('categories.id', ondelete='CASCADE'), nullable=False) category = db.relationship('Category', backref=db.backref('comments', lazy='dynamic' )) def __init__(self, comment, category_id): self.comment = comment self.category_id = category_id class Category(db.Model): __tablename__ = 'categories' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(150), unique=True, nullable=False) def __init__(self, name): self.name = name class CategorySchema(ma.Schema): id = fields.Integer() name = fields.String(required=True) class CommentSchema(ma.Schema): id = fields.Integer(dump_only=True) category_id = fields.Integer(required=True) comment = fields.String(required=True, validate=validate.Length(1)) creation_date = fields.DateTime()
penghijrahan data
from flask_script import Manager from flask_migrate import Migrate, MigrateCommand from Model import db from run import create_app app = create_app('config') migrate = Migrate(app, db) manager = Manager(app) manager.add_command('db', MigrateCommand) if __name__ == '__main__': manager.run()
Ujian
Anda boleh menggunakan curl, contohnya:
$ python3 migrate.py db init $ python3 migrate.py db migrate $ python migrate.py db upgrade
Atas ialah kandungan terperinci Bagaimana untuk membuat antara muka API?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Perbincangan mengenai realisasi kesan animasi tatal dan elemen Parallax dalam artikel ini akan meneroka bagaimana untuk mencapai yang serupa dengan laman web rasmi Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ... ...

Pembelajaran JavaScript tidak sukar, tetapi ia mencabar. 1) Memahami konsep asas seperti pembolehubah, jenis data, fungsi, dan sebagainya. 2) Pengaturcaraan asynchronous tuan dan melaksanakannya melalui gelung acara. 3) Gunakan operasi DOM dan berjanji untuk mengendalikan permintaan tak segerak. 4) Elakkan kesilapan biasa dan gunakan teknik debugging. 5) Mengoptimumkan prestasi dan mengikuti amalan terbaik.

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Bagaimana cara menggabungkan elemen array dengan ID yang sama ke dalam satu objek dalam JavaScript? Semasa memproses data, kita sering menghadapi keperluan untuk mempunyai id yang sama ...

Terokai pelaksanaan fungsi seretan panel dan drop panel seperti VSCode di bahagian depan. Dalam pembangunan front-end, bagaimana untuk melaksanakan vscode seperti ...
