Estou tentando escrever um site comercial "padrão". Por "padrão", quero dizer que este site executa o HTML5, CSS e Javascript usual para o front-end, um back-end (para processar coisas) e executa o MySQL para o banco de dados. É um site básico de CRUD: o front-end apenas faz o que quer que o banco de dados tenha reservado; o back-end grava no banco de dados o que o usuário digita e faz algum processamento. Assim como a maioria dos sites por aí.
Ao criar meus repositórios do Github para começar a codificar, percebi que não entendo a distinção entre o front-end back-end e a API . Outra maneira de formular minha pergunta é: de onde a API entra nessa imagem?
Vou listar mais alguns detalhes e depois as perguntas que tenho - espero que isso dê a vocês uma idéia melhor de qual é minha pergunta real, porque estou tão confusa que não sei a pergunta específica a ser feita.
Mais alguns detalhes:
- Gostaria de experimentar o padrão Model-View-Controller. Não sei se isso muda a pergunta / resposta.
- A API será RESTful
- Gostaria que meu back-end usasse minha própria API em vez de permitir que o back-end trapaceie e chame consultas especiais. Eu acho que esse estilo é mais consistente.
Minhas perguntas:
- O front-end chama o back-end que chama a API? Ou o front-end chama a API em vez de chamar o back-end?
- O back-end apenas executa uma API e a API retorna o controle ao back-end (onde o back-end atua como o controlador final, delegando tarefas)?
São encorajadas respostas longas e detalhadas que explicam o papel da API ao lado do back-end do front-end. Se a resposta depender do modelo de programação (modelos diferentes do padrão Model-View-Controller), descreva essas outras formas de pensar na API. Obrigado. Estou muito confusa.