Questions tagged [api-design]

Application Programming Interface (API) Design discusses best practises for creating libraries intended for general purpose or public use.

Filter by
Sorted by
Tagged with
1 vote
1 answer
24 views

Exposing DB table to other Microservice via a Library

Consider I have 4 Services . Account Order Items Customer Now a External Partner Service calls all these services , by passing an External customer id ( EXT_CUST_ID) in the request. Our platform has ...
Dev-vruper's user avatar
0 votes
0 answers
8 views

Feedback on API design of a HalfEdge Data structure

Background Sometimes also referred to as doubly connected edge list, the HalfEdge data structure allows programmers to efficiently and easily modify topological and geometric properties of a mesh. ...
Makogan's user avatar
  • 261
-4 votes
1 answer
175 views

I do not like RESTful APIs anymore and dont understand why nobody agrees with me [closed]

Some years ago, every API I developed was a REST API and I did everything to follow the best practices to make them "RESTful". But after some time, I have my doubts if RESTful APIs that ...
David Mason's user avatar
2 votes
1 answer
102 views

web-dev: how to restrict access to costly backend API to authenticated clients only

I've created a small prototype browser plugin and am now thinking about making it accessible to the public. This brings up an important question about gatekeeping API access and the right way to ...
lhk's user avatar
  • 446
0 votes
1 answer
65 views

REST - Adding a new field

I have an object with fields like ID, CODE, NAME, etc., and it has its own database table with each field. And I am working on implementing the REST API for this object. I want to expose all these ...
Arpit Jain's user avatar
0 votes
1 answer
77 views

Why aren't mandatory options requested in the signature of ASP.NET Core "AddXXX" methods?

I've developing a .NET Core library meant to simplify the configuration of the authentication within our SSO system. It will expose two methods to be called in the Program.cs (or Startup.cs) of ASP....
Gua-naiko-che's user avatar
0 votes
0 answers
24 views

Update notification through api end point to SignalR hub or directly in SignalR hub

For updates on a dashboard, I need to decide to make an extra api end point which creates a message in SignalR or let some kind of message broker (filewatcher1) do that. What would be good ...
Jannick Breunis's user avatar
0 votes
3 answers
90 views

How to build REST uri that fetches children by parent ID

I am building 2 REST microservices: ParentService and ChildService. I need to build endpoint to fetch all Child resources related to specific Parent, so I have these URI's as options: GET /parent/{...
milosdju's user avatar
  • 101
1 vote
1 answer
87 views

Servlet Development Best Practices

I am developing a web application using Java servlets, and I would like to know what the software development community thinks of the following programming practices: Use static member variables for ...
TTCUSM's user avatar
  • 19
-2 votes
2 answers
67 views

API design. Make multiple PUT request or one single PUT request for updating multiple fields of the same database

I have three seperate fields and all three are unrelated to each other but part of the same collection (Tables for SQL folks). Now, what I'm getting stuck at is, should I allow end-users to make one ...
CrumpledMemories's user avatar
0 votes
0 answers
37 views

How to Handle Undocumented Fields in OpenAPI Schema?

I'm working with an API that uses OpenAPI for its schema documentation. However, there are certain fields in the request body that shouldn't be visible to all consumers, for example, internalProperty: ...
Sergey Kolesnik's user avatar
0 votes
3 answers
81 views

Is it appropriate to use PUT for resources when the id is deterministically derived from immutable properties?

I'm working with a RESTful API where a POST operation is used to create a user. A required field, which could be an email or a unique user nickname, is unique across the system. The response to this ...
Sergey Kolesnik's user avatar
-1 votes
1 answer
122 views

What does `/-/` mean in API? [closed]

I often see /-/ in API design, what is it used for? Is there any related documentation? I have tried to find it in the following documents, but did not find any relevant information: https://cloud....
Sangria's user avatar
  • 11
2 votes
3 answers
211 views

Is it bad practice to create a resource in a GET request when the resource will be created later automatically?

At the moment I design a RESTful API for a resource that is normally created by a cron job from existing data. Since the cron job runs only every 10 minutes it is possible that GET: /user/{id}/...
Timo's user avatar
  • 29
0 votes
0 answers
38 views

Creating a generic service comprising another service

Currently I have an existing API for my AI Engine, and a python wrapper to interact with the API. So this wrapper acts like a helper class to help format and automate some of the process that is ...
rcs's user avatar
  • 99
0 votes
1 answer
145 views

Clean architecture - how to manage use cases that depends on external apis

How to apply clean architecture concepts in a software that depends on External APIs. Example: A business that offers some kind of subscription to its users. Its convinient to store some subscription ...
Drealler's user avatar
0 votes
0 answers
46 views

JWT Cookie and API Gateway

Background I have an authentication microservice that handles the user authentication and returns 2 JWT cookies (access_token and refresh_token). I want to incorporate an API gateway that does the JWS ...
Neil's user avatar
  • 9
1 vote
2 answers
461 views

Why does IDictionary not implement IReadOnlyDictionary

I've recently just noticed that IDictionary does not implement IReadOnlyDictionary. I'm using two third-party libraries, one of which provides a ToDictionary() method which returns an IDictionary ...
Andrew Williamson's user avatar
2 votes
1 answer
184 views

Should I put API gateway behind load balancer or vice versa

I am currently learning system design. I wonder if I should put load balancer in front of multiple instances of API gateway or put an API gateway in front of single load balancer. which one is valid ...
Patrick's user avatar
  • 143
1 vote
2 answers
172 views

Is it allowed in DDD application to expose HTTP API endpoints for objects different than aggregate roots?

It's rather common knowledge that aggregate root provides an interface for every state change within that aggregate. For instance, aggregate root checks some business rules before some dependent ...
Jacek's user avatar
  • 119
3 votes
0 answers
159 views

API Gateway Design Pattern - Backends for Frontends

I am contemplating the use of the design pattern API Gateway, specifically the Backends for Frontends derivative. We have a number of 3rd party software packages that expose an API. Over the course of ...
Ryan Wilson's user avatar
-1 votes
1 answer
160 views

Help in understanding if my design getting complicated [closed]

I have 3 classes class Backup end class Database end Class App end The backup database has a reference to Database and App, like class Backup def getDatabase Database.create end def ...
Raja G's user avatar
  • 109
0 votes
0 answers
49 views

Translation Server-side vs. Client-side when having the same locales files

I'm currently working on a Turborepo project (monorepo architecture) and I have managed t share my locales files to both back-end and front-end parts. This means I share the exact same keys across ...
Jolan B.'s user avatar
0 votes
0 answers
72 views

Improve return type for CRUD GET list or details objects

When creating the crud GET methods to get a list of items, or the details, what should I return? The whole object properties for both cases? Or just the properties that are necessary? I'm asking this ...
celsomtrindade's user avatar
0 votes
1 answer
140 views

Forwarding websocket messages to many clients

I have a wesocket api that constantly send positiondata of many clients as websocket messages. I want to build a web api that connects to the websocket endpoint to receive the positiondata. If a ...
LBats's user avatar
  • 9
0 votes
1 answer
58 views

Domain Boundary Definition in `proximity service` as a Case Study

While practicing System Design, I decided to create a hypothetical proximity service (like Google Maps) with a microservice architecture. Suppose we have 3 core categories of functionality: CRUD ...
Andrew Sharifikia's user avatar
0 votes
3 answers
519 views

Clean Architecture and Access Control

I'm working on a .Net core API for product configuration and ordering. The ticket for Permissions has come up and I've been tasked with developing a solution, ideas of middleware have been mentioned. ...
Tod's user avatar
  • 103
0 votes
0 answers
56 views

Decoupling a Configuration API in an Embedded Framework

In my embedded project I am designing a framework that allows the user to create widgets at compile time. All widgets must provide the same base functionality. Further, there are multiple widget ...
nowhere_'s user avatar
-1 votes
1 answer
15 views

How to use versions-maven-plugin with shared contracts?

Context: We have Java maven Multi Microservices Project. The structure for each microservice is a contracts package and a service package. When we update a version of a specific microservice the ...
shanif's user avatar
  • 101
-1 votes
3 answers
359 views

HTTP REST API: Is it wrong to put search parameters in a custom header?

The contents of search string are typically sent as part of the URI query: https://domain.name/resource?search=something+i+am+searching+for Those same contents can be sent as the value of a custom ...
SunSparc's user avatar
  • 175
0 votes
1 answer
63 views

API design with conditional compilation: stubs and exceptions vs public API change?

I am developing a package for the Unity game engine. I want to add additional functionality to my package if another specific package is present. I am faced with a dilemma I am not sure which of these ...
starikcetin's user avatar
0 votes
2 answers
187 views

How to keep OpenAPI specification up-to-date and compliant without using code generators?

In our company, there is no standard for how to document APIs. Missing API documentation slows down the development process. Therefore, we want to introduce OpenAPI. We want to use code generators to ...
Harold L. Brown's user avatar
3 votes
2 answers
205 views

Best approach to microservice shared databse architecture

I have two microservices, one Flask (python) and one Spring (java), they currently share a database. The Flask microservice handles processing json files (~40mb) for each user (could be 100's or 1000'...
MSmith's user avatar
  • 31
1 vote
3 answers
526 views

Correct way to return JSON schemas in a REST API

in our company we have some APIs that return some JSON data. Before sending, for instance, data to the backend using PUT, PATCH, or POST, we need to do some kind of validation in the different clients ...
Antonio Gamiz Delgado's user avatar
0 votes
1 answer
67 views

How to improve a monthly usage quota system for an API with growing number of users?

Couple of years ago, I designed an API service which has a limit on the number of requests per month per user. To track the monthly usage of each user, I used a table called monthly_usage. The table ...
bytesandcaffeine's user avatar
0 votes
3 answers
291 views

Should a REST endpoint return always the same JSON fields?

For example, let's say that I have an endpoint to get a list of buildings, that can be either apartment or house. The client can filter by apartment or house. Apartment has a property floor that house ...
Henrique Andrade's user avatar
1 vote
0 answers
87 views

Limiting exposed interface for state transitions

Scenario: Given a class with some internal state and methods to manipulate this state, I want to limit the exposed methods that are available to potential clients/users of my API. TLDR: In the ...
sfiss's user avatar
  • 725
0 votes
1 answer
144 views

Sink or non-sink API's?

This might be an opinionated question but I'm eager to hear your anecdotes as I'm at the beginning of designing a new API. Now I'm questioning whether I want this API to be a sink API or non-sink API. ...
glades's user avatar
  • 315
-2 votes
1 answer
142 views

Adding new column(s) to DB Table breaks existing queries [closed]

Dilemma: I am working in microservices (MS) architecture for a product with shared (PostgreSQL) DB between MSes and DB Views exposed as Data Access API between SW Components, written and maintained by ...
ALZ's user avatar
  • 107
-1 votes
1 answer
112 views

What is point of having certain microservices making another API call in the same service

I was going through an old, largely untouched part in my company’s codebase and found one API. It does the following things. A POST API with path host/entities/trigger which fetches a list of entity ...
elliot's user avatar
  • 11
5 votes
2 answers
617 views

Why does C# List<T>.AsReadOnly() allocate?

I am looking at the List<T>.AsReadOnly() method. Since List<T> itself is a IReadOnlyCollection<T>. (It implements IReadOnlyList<T> and IReadOnlyList<T> implements ...
Madushan's user avatar
  • 203
0 votes
1 answer
163 views

Exchanging data between two Microservices

I am facing this problem and would like to review my approach to it here. A Client sends an HTTP request to Service A and is expecting an answer. Service A is connected to DB A. When it receives a ...
Solidak's user avatar
  • 157
0 votes
3 answers
128 views

Is it a bad practice to include fields on DELETE requests that will enforce them, but only in on certain environments? [closed]

I've seen similar questions but in this case the code deployed to all stages (local, dev, staging, prod) will be the same. The idea is to have a special field on one particular request, something like ...
fedest's user avatar
  • 119
-1 votes
1 answer
38 views

What is the convention for deciding which resource to place an endpoint under? [closed]

I have an endpoint that teachers can use to invite students to a virtual classroom by providing their emails in a list format. Let's call it POST invite-students. I have these four resources: api/v1/...
oamandawi's user avatar
  • 101
0 votes
1 answer
134 views

Trie data for searches in time ranges

I am developing an API responsible for returning the distinct searches made on a service given a date prefix. Example data: 2015-08-01 00:00:18 %22http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%...
alves's user avatar
  • 101
0 votes
0 answers
26 views

Should singular resource returns 404 or empty body in RESTful api [duplicate]

There are resources in REST API that can be singular in nature. e.g. a scheduled reboot job. When no such reboot job is scheduled, what should GET https://.../scheduled-reboot returns? Should it ...
unional's user avatar
  • 169
2 votes
3 answers
186 views

Rest API: paths versus queryparams for user accounts

I'm looking for some guidance around REST design for user account endpoints. I generally understand REST and some of the principles involved, with paths being used to fetch items from a resource: /...
aroooo's user avatar
  • 255
0 votes
0 answers
69 views

What HTTP status code to return to differenciate resource not found from missing or deleted resource? [duplicate]

We would like to differentiate (by HTTP status codes) between correct request but the requested resource is missing or deleted and resource not found because of invalid request (URI). For example: /...
Random Alphabets's user avatar
0 votes
0 answers
65 views

API contract design for field attribution based schema

I am currently working on a problem which involves defining the API contract (or DTO/Schema). Note that this will be private API, and non public. The following image shows a possible form of the ...
user1778855's user avatar
0 votes
0 answers
33 views

API Design - Creating one component vs two components whose difference is a required parameter

I'm currently creating a React App using the Atomic Design methodology. I'm implementing a series of molecules to define a list row. I currently have this IconTextItem that implements an IconItem ...
Jose A's user avatar
  • 275

1
2 3 4 5
23