150
Views
7
Comments
Solved
REST API should be in core layer or foundation layer
Application Type
Reactive
Service Studio Version
11.53.34 (Build 61795)

Hi Community,

I have one question,

REST API should be in core layer or foundation layer ? The Architecture tutorial says Integration Services should be in foundation layer. Does REST API Consumption count as Integration Service?


Thanks !

Solution

Hi Ashish,


Yes, integration services are part of a Foundation layer.

Think about integration services for Stripe payments or for saving documents in Dropbox, they are business agnostic and should be in the Foundation layer.

You can read more about in the Architecture Canvas documentation.


Kind Regards,
João

Thanks Marques, for the image and prompt response !!

can you help me with this as well?


https://www.outsystems.com/forums/discussion/84827/how-to-integrate-payment-gateway-with-mobile-web-apps-reactive-not-tradition/#Post356741

Solution

hi Ashish,

Actually, your question has two answers, based on if your question is used on either Consuming an REST API or Exposing an OutSystems REST API.

For Consuming a REST API Foundation layer should be used.

For Exposing a REST API Core Services layer should be used, and suffix your module with _API.

Regards,

Daniel

Hi Daniel,

After reading marques answer I had this kind of confusion in mind actually. But thanks for ckearing out the confusion.

Here I was surprised after one external analysis where one of the suggestions was to split 1 app into a Core app and one Interface App. It's ok! The problem was: 

I had some discussion because for me one _API module is not a Core Service, core service for me is something that has potential reusability in an OutSystems app on the top.

One _API is an interface, where I don't have any core logic, just Authentication and Authorization, exactly like a screen. Why is it suggested to put this module in a Core App? Is an interface module, an entrance from an external OutSystems "world" to an internal OutSystems "world", like an input of a user.

Can you show me the light? With an easy explanation, not saying because OutSystems says that is like this or an _API module does not have screens.


Thanks for your time! 


Modules with suffix _API are used to expose an OutSystems API to other systems, this is at the core layer which can be multilayers (sublayers) the _API can have dependencies to for example _BL or _CS modules.

Modules with a suffix _IS are used to consume an external API, this is at the foundation layer.

Solution

Hi Ashish,


Yes, integration services are part of a Foundation layer.

Think about integration services for Stripe payments or for saving documents in Dropbox, they are business agnostic and should be in the Foundation layer.

You can read more about in the Architecture Canvas documentation.


Kind Regards,
João

Thanks Marques, for the image and prompt response !!

can you help me with this as well?


https://www.outsystems.com/forums/discussion/84827/how-to-integrate-payment-gateway-with-mobile-web-apps-reactive-not-tradition/#Post356741

Solution

hi Ashish,

Actually, your question has two answers, based on if your question is used on either Consuming an REST API or Exposing an OutSystems REST API.

For Consuming a REST API Foundation layer should be used.

For Exposing a REST API Core Services layer should be used, and suffix your module with _API.

Regards,

Daniel

Hi Daniel,

After reading marques answer I had this kind of confusion in mind actually. But thanks for ckearing out the confusion.

Here I was surprised after one external analysis where one of the suggestions was to split 1 app into a Core app and one Interface App. It's ok! The problem was: 

I had some discussion because for me one _API module is not a Core Service, core service for me is something that has potential reusability in an OutSystems app on the top.

One _API is an interface, where I don't have any core logic, just Authentication and Authorization, exactly like a screen. Why is it suggested to put this module in a Core App? Is an interface module, an entrance from an external OutSystems "world" to an internal OutSystems "world", like an input of a user.

Can you show me the light? With an easy explanation, not saying because OutSystems says that is like this or an _API module does not have screens.


Thanks for your time! 


Modules with suffix _API are used to expose an OutSystems API to other systems, this is at the core layer which can be multilayers (sublayers) the _API can have dependencies to for example _BL or _CS modules.

Modules with a suffix _IS are used to consume an external API, this is at the foundation layer.

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.