Who should design API in APIGEE?

ajytwi
Participant III

Hello,

Who should do API design? Should backend teams give us swagger specs or APIGEE developer team should design API?

May I know why do have to design API in APIGEE , shouldn't backend team take care of design of API and make sure the API which they are presenting to be exposed to external world or be consumed internally?

Because in APIGEE ideally we don't care about the data instead just proxy the data and API.

Do we have some use cases where in it make sense or have value for APIGEE developer/Design engineer to put efforts on creating swagger specs?

I understand the value of swagger, its necessary, only point which I wanted to know whether APIGEE team should do the design? because to me we do the proxy development over the top of existing API.

As we are not API Producer or API Owner does it still worth to create specs?

Thanks

Ajay Tiwari

0 7 447
7 REPLIES 7

asharma377
Participant V

Hi Ajay,

From my experience - Many a times the backend systems are legacy systems.

They may not even be adhering to Restful principles and may not even have a swagger contract.

You may be required to process the backend responses and mold them in to a consistent formats with respect to error codes, messages, url formats etc.

Thus, as API Team it would become your responsibility to maintain this swagger spec. and ensure consistency for all APIs.


Also, when you get into publishing stage of API then you would create catalogues and make them available for consumption by app developers. So the swagger spec that you associate with catalogue would again be API team responsibility.

In microservices based development there is a Swagger that the Services team will maintain. If thats your use case you may well use that swagger. In product stage apigee allows selective path and multiple proxies to be attached to one product and then publish. If thats your product design some work on swagger spec would still be required from your end when you create these catalogues.

thanks,

Aakash

Not applicable

See, for me having swagger file with you is helpful to design api in Apigee. Also you need to understand your partner's requirement to consume the service, like what security they want, whether any TLS is required, rate limit, what type of quota etc. The backend team will give you the backend's capacity to handle spike, what parameters the backend expects in the request. Also the Apigee designer should have the rest architecture, security knowledge to do efficient design.

ajytwi
Participant III

Thanks @aakash @priyadarshi


Reason for me to ask this question is if service/backend team is having swagger and if they can create API and manage them (proxy APIs) , so shouldn't we allow them to create and publish APIs? If we can give developer access to them and share some guide, probably they themselves should be able to do this at least for proxy APIs where in there is no transformation and some basic spike arrest/quota needs to be set? because we have mostly 90% API are proxy APIs with no transformation hence it doesn't make any sense to have separate team to manage these kind of APIs. because in APIGEE Edge if you have swagger , you can develop the passthrough APIs within few minutes.


Also related to security , consumers have to adhere security protocols which we define in APIGEE.

We don't usually have knowledge of backend data as we just create proxy APIs over backend APIs as to be able to allow consumer applications to access backend data. If we have to do efficient design then we have to understand the API data element business requirement which Ideally we don't do...


My Question is it best way to do , or so we any drawback for this approach?


Thanks





Not applicable

What you are asking is what we are currently doing in our company. We have recently created a self service platform. There backend teams will upload their openapi document and select the type of template they want to use, accordingly the proxy will be created in Apigee.

We have created some templates for proxy, after discussing with multiple architects and with security teams' approval.

ajytwi
Participant III

Hello Priyadarshi Ajitav Jena Aakash Sharma

Do we have some documents where in we can give developer/publisher role to backend team?

How you are making sure about API data_Model consistency as different backend team might be having the different naming convention?

Isn't this create additional hurdle for them to create swagger docs for us for the name of self service?

Thanks

Not applicable

We don't have such document. We have developed application which gathers the resource path, backend, flows information from swagger and use our template to build proxy. In past we were manually developing proxies seeing the swagger file. So, the naming convention of them doesn't impact Apigee.

ajytwi
Participant III

Documentation I mean , from APIGEE which recommends this approach. As per APIGEE docs , API team from APIGEE do this activity design , development, test ,monitor