Docs‎ > ‎Architecture‎ > ‎

Services for Client App Development

API servers figure significantly in app development, ranging from basic connectivity, to object generation, to partitioning:

  • Connectivity. Virtually all languages facilitate HTTP/RESTful APIs.
  • Database Abstraction Layer. API Creator facilitate client development through customized resources that select the correct columns, alias them, and join multiple objects together so they can be retrieved simply, in one trip.
  • Object Model. Some languages are built around objects (Java POJOs, .NET POCOs, etc). You can create such objects using Swagger SDKs.
  • Application Partitioning. Effective applications depend on proper partitioning of logic between the client and server. This is often a source of architectural error, resulting in duplicated / inconsistent logic, poor performance, and unavailability of logic for non-interactive applications. The following services provide meaningfully improved re-use and reduced development time.
  • Pagination. Pagination breaks large result sets into page-size chunks, to ensure good performance. This is often part of client database-handling code. API Server provides Pagination.
  • Optimistic Locking. Optimistic Locking is a commonly accepted approach for increasing concurrency by enabling updates to unlocked data. This requires various mechanisms (timestamps, checksums etc) that often require client code. API Server provides Optimistic Locking.
  • Logic. While it is an anti-pattern, business logic for database integrity is often placed in client applications. This leads to poor performance (multiple trips), redundant / inconsistent code (due to replication), and inability to access logic (for example, for Web Services). API Server provides Reactive Logic, so that such logic is factored out of client, and significantly more concise.
  • Security. Typical applications include substantial logic on the controller buttons to inject security filters into queries, e.g., to ensure a Sales Rep sees only their own orders. Such logic is tedious, and difficult to ensure compliance. API Server enforces role-based row/column level Authorization.
  • Primary Key Generation. Consider creating an Order, with a set of Line Items. If the Order has an automatically generated key, the client could be forced into multiple server interactions:
  • Insert the Order, and obtain the generated key
  • Insert the Items, having placed the OrderID into each item
This is a lot to code, and performs poorly due to multiple server trips.

API Server provides services for Primary Key Generation. You define a resource that includes the related data and submit it. This partitions the logic to the server.

For more information about an example that shows the services for primary key generation, see Business to Business Example.