Hello,
I think microservice architecture is not about Web API. It is more about whole system dividing into small isolated parts. Communication between these parts is base of microservice architecture. This architecture style cannot be described by one or two patterns.
It you have use cases for whole system you can try to find some disjointed areas of system. Each of these areas has own database, own data layer, own business layer and UI (it might be REST API for example). There is necessary to have system for communication.
For example if you have product microservice to have business rules above product, you have microservice for invoicing which uses product too. But invoice microservice doesn't have access to product microservice database. So if product price is changed, product
microservice fired event and invoice microservice update own records. So there could be some duplicity on code and databases.
What I want to say it is that microservice architecture is created by parts which are low coupled together. This is heart of microservices.
I think … If you know system functionality and you have use cases you must have some layer which represents these use cases. First step to create microservice architecture is divide this layer into isolated parts and all logic from another part should be
called through this layer. Second step is divide and create database for each part and create some communication mechanism as messaging queues, RPC or REST API.
Coding structure is not depend on this architecture. Many systems which are not based on microservices have similar architecture - data layer, application layer and business layer. Use only what you need. If you have part where business rules are not present
don't implement business layer.