Platform Engineering Team/API Value Stream
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. See MediaWiki Engineering Group instead since 2023. |
API Platform
|
API Platform Overview
[edit]The API Platform facilitates self-service application development using Application Programming Interfaces (APIs). Our goal is to make it easier to develop, access, and maintain open knowledge products through an API framework. The team will create solutions that are extensible, scalable, and reusable. These solutions will contribute to the platform evolution goals.
The API platform will include four key components:
- guidelines and tools for the full API Lifecycle,
- access to API services through an API gateway,
- access to information about our API services through an API Portal, and
- API management that provides transparency, consistency, and security.
API Lifecycle
[edit]An API Lifecycle has six main stages:
- Design: This is a planning phase where the technical and business needs are reviewed, key requirements are formalized and design specifications are created. This process will apply best practices outlined in the API Design Guidelines (forthcoming).
- Implementation: Developers code the API based on the key requirements and design specifications.
- Testing: Once built, the API build will be tested for functionality, performance, and security. Testing will follow processes outlined in API Testing Practices (forthcoming).
- Deployment: Once the API has been approved for deployment, a clear path outlined in API Deployment Process and, when applicable, API Version Control Strategy will be followed (both process documentations are forthcoming).
- Management: A dynamic catalog of the various APIs, their versions, and the datasets and applications that they connect to will enable reliable governance. Observability of the usage of the APIs will ensure we understand and can pinpoint areas that need improvement.
- Deprecation: Over time, some API may be retired in favor of offering an alternative improved service. This process must be intentional and not cause major service interruption.
Once completed, the Wikimedia Foundation API Guidelines, will provide API producers and API Admins a clear set of steps and principles that support platform independence, consistent APIs, and easier adoption, usability, and maintenance. This work is in the planning stage.
API Gateway
[edit]The API gateway is a proxy server that acts as a vetting process between clients requesting data and the servers that provide it. This intermediary communication improves performance through traffic control and load balancing, increases security, and enables the rapid development of products and services. The API Gateway provides protection from overuse and abuse, allows us to understand API usage so we can improve performance equity, and removes complexity for the API consumers. Our API gateway is in its alpha release. Technical documentation is available on Wikitech.
API Portal
[edit]The API Portal connects API producers with API consumers. People will be able to access our available range of APIs and get to know about their usage and capabilities. It includes centrally located documentation about the available API services, versioning and depreciation information, and our API Lifecycle Guidelines. The API Portal also educates developers about how to use our API services with getting started guides, API integration details, and processes for generating client keys and configuring access. The API Portal also promotes available API services and open knowledge products made with our APIs through curated discovery pathways of highlights from our community of developers. Our API Portal is currently available as a proof of concept.
Key benefits for the open knowledge movement
[edit]Universal API Management
[edit]Once mature, the API Platform will be the hub for a centrally visible and scalable process for managing APIs across Wikimedia projects. This hub will create the conditions for:
- Knowledge Equity: equitably consumable, secured, and transparently maintained APIs
- Knowledge as a Service: knowledge proliferation both on wikis and off through programmatic consumption of content and stable content creation workflows
- Technical Contributor workflow efficiencies: accurate docs that are easy to discover, processes that are standardized, examples, SDKs, and tutorials that decrease the time to first hello world.
Roadmap
[edit]The API Platform team's work is planned on a living, actively maintained API Platform Roadmap Miro board.
The team's implementation work is tracked on the API Platform Roadmap Phabricator Board.
Current Major Initiatives & Projects
[edit]Phab workboard | Initiative (Project Pages) | Epics (Phab Tickets TKTK) | Status |
---|---|---|---|
RESTbase Sunsetting Project | RESTbase Deprecation | Remaining services research | in process |
Remaining services migration roadmap | in process | ||
Proton migration implementation | in testing | ||
AQS 2.0 Roadmap | AQS 2.0 | Device Analytics Implementation | on staging |
Page Analytics Implementation | in process | ||
Edit Analytics Implementation | up next | ||
Editor Analytics Implementation | up next | ||
Geo Analytics Implementation | up next | ||
Media Analytics Implementation | up next | ||
API Gateway Roadmap | API Gateway | Routing solution for Lift Wing endpoints | on production |
RESTbase service migration gateway | in process | ||
Proton migration | on staging | ||
PCS migration | on staging | ||
Device Analytics New Service Deployment | on staging | ||
API Portal Project | API Portal | Content Audit | backlog |
User Testing Proof of Concept | backlog | ||
To Do | API Guidelines | Technical Decision Forum Process | in process |
Glossary | in process | ||
Thumbor Migration Roadmap | Thumbor update and migration to K8S | Trouble shoot production blockers | blocked |
Work Intake Process
[edit]The team meets throughout the week to review and triage incoming requests, bugs, or feature support on a rolling basis.
For questions or requests for consultations, you can create a task on the API Platform Consultation Phabricator board and tag it #api platform.
For work related to bugs, features or support on API Platform products and services, you can create a task on API Platform General Phabricator board, and assigned it to vpoundstone(Virginia Poundstone).
We also welcome questions and feedback on our talk page.
Demos & Artifacts
[edit]Note: You'll need to be signed in with your WMF account to view these videos.
2021/09/02 | API Process & OAuth Flows | (Bill Pirkle, Nikki Nikkhoui) |
Last updated: 2024-03-23 by AKlapper (WMF)