The Design of Web APIs
در بیشتر دوران کاری خودم، با استفاده از فناوریهای مختلف رابط نرم افزاری، از فایلهای ساده و پایگاههای داده گرفته تا رابطهای نرم افزاری از راه دور مبتنی بر RPC، Corba، Java RMI، سرویسهای وب SOAP و Web API ها، آجرهای نرم افزاری را به هم متصل کردم. در طول این سالها، من خوش شانس بوده ام که روی سیستمهای توزیع شده motley کار کنم که فن آوری بسیار قدیمی mainframe را با سیستمهای ابری پیشرفته و هر چه که در این بین است را ترکیب کرده بود. من هر دوی وب سرویسها و Web APIهای عمومی و خصوصی را برای frontend و backend برنامهها ساخته ام. در تمام این سالها من در مورد رابطهای نرم افزاری بد، بسیار شکایت کردم و در تلههای زیادی افتادم و اینترفیسهای نرم افزاری وحشتناکی نیز ایجاد کردم.
بعد از ۲ سال وبلاگ نویسی و صحبت کردن در کنفرانس ها، ایده نوشتن کتاب به وجود آمد. من میخواستم کتابی بنویسم که برای خود قدیمی ام که در دامهای بسیار افتاده بود نوشته شده باشد. از خوش شانسی، انتشارات Manning به دنبال کسی میگشت که مایل به نوشتن کتاب درباره مشخصات OpenAPI باشد و من نیز این کار را پذیرفتم.
یک API، به توسعه دهندگان این امکان را میدهد تا بدون دانستن جزئیات در سطح کد، برنامه خودشان را با برنامه مورد نظر یکپارچه کنند. این که شما از استانداردهای شناخته شده ای مثل REST و OpenAPI یا رویکردهای جدیدتر دیگری مثل GraphQL یا gRPC استفاده کنید، به هر حال مهارت پیدا کردن در طراحی API یک توانایی فوق العاده محسوب میشود. این کار باعث میشود که سرویسهای وبتان را راحتتر بتوان استفاده کرد و مشتری هایتان نیز خوشحالتر میشوند.
مطالبی که در طراحی کتاب طراحی Web APIها می آموزید:
- ویژگیهای یک API خوب طراحی شده
- APIهای واقعی و کاربر گرا
- امن سازی APIها با طراحی
- بهبود، مستند سازی و بررسی طراحی APIهای دنیای واقعی
Table of Contents
PART 1 - Fundamentals of API design
1. What is API design?
2. Designing an API for its users
3. Designing a programming interface
4. Describing an API with an API description format
PART 2 - Usable API design
1. Designing a straightforward API
2. Designing a predictable API
3. Designing a concise and well-organized API
PART 3 - Contextual API design
1. Designing a secure API
2. Evolving an API design
3. Designing a network?efficient API
4. Designing an API in context
5. Documenting an API
6. Growing APIs