Introduction¶
Skip the kubernetes / python / React.js learning curve and put your ideas in production!
The APIcrud framework makes it easier to get started on full-stack development of REST-based services, ranging from a simple CLI wrapper for queries of local APIs to full web-scale consumer-facing applications running on kubernetes.
The essential components of a modern full-stack application include a back-end API server, a front-end UI server, a database, a memory-cache and a background worker for performing actions such as emailing, photo uploading or report generation. The challenge of setting up CI testing and microservice deployment is usually daunting; this repo addresses all of those issues by providing a fully-working example you can set up and start modifying in minutes. No prior experience is required.
Features¶
Out of the box, here are some of the capabilities included in the example application. All “batteries are included” (and tested on GitLab with each version update), with no plugin version-hell mismatches to worry about later.
User-account setup, following standard security practices with password lockout and reset via email
Single-signon via external OAuth2 / OpenID providers (google, twitter, many others)
Encryption-at-rest for credentials
Microservice discovery (feature-flagging via announced endpoints)
GeoIP location lookup and map display
Customizable per-account grant limits (such as list size, number of contacts)
Application and usage-billing metrics, along with a prometheus viewer
User-profile and settings screens
Authentication by password or API key
MFA with Google Authenticator
Extensible internationalization support
Photo and file uploads, with a mobile-friendly photo album
Configurable role-based access control for all resource types, with per-object privacy settings
Storage and content-delivery support for AWS
Messaging via email and SMS
Per-user request-rate limiting
Courtesy warning notice as usage approaches a monthly limit
Scalability and fault-tolerance for all services
About the Name¶
APIcrud is based on the OpenAPI 3.0 standard for RESTful web services. While newer APIs have been developed, such as gRPC (Google) and GraphQL (Facebook), REST remains by far the most widely supported and easiest to learn interface for getting your software deployed. Most capabilities for any application can be defined as resources that are Created, Read, Updated or Deleted.
Technology Stack¶
This system is built with the following technologies: babel, celery, CloudFront and S3, docker, flask, kubernetes, MapQuest geocoding, mapbox, MariaDB, python 3, RabbitMQ, react.js, react-admin, sqlalchemy, uWSGI.
License¶
Software copyright © 2020 by Richard Braun • Apache 2.0