iOS consumindo o design da API

Eu vou desenvolver um aplicativo iOS para um aplicativo da web. (O aplicativo da web usa o código igniter)

Eu estou indo para criar um serviço de API que o aplicativo iOS irá consumir.

Estou pensando em criar uma versão da API, então quando a API da web mudar, o aplicativo para iOS saberá.

Preocupações:

O aplicativo iOS precisará ser atualizado quando a API do aplicativo da web for alterada (a menos que eu mantenha a API legada disponível ... isso é uma boa opção)Se o aplicativo iOS for atualizado quando a API do aplicativo da Web NÃO estiver atualizada, isso causará um problema também

Meu aplicativo para iOS deve especificar a versão da API necessária?

Se a API do aplicativo para iOS for menor que a API da web: Exibir mensagem: atualize o aplicativo para iOSSe a API do aplicativo para iOS for maior que a API da web: Exibir mensagem: atualize o aplicativo da web

Essa é a melhor prática?

Devo criar uma classe api para cada versão e estender a versão anterior e substituir os métodos quando eles forem alterados?

Exemplo

ApiV1 extends CI_Controller
{
   function list_customers(){//Code}
   function saveSale() {//Code}
}

ApiV2 extends ApiV1
{ 
   function saveSale()
   {
      //New way of saving sale
   }
}

Além disso, o que acontece se eu fizer uma alteração na estrutura do banco de dados em que a v1 api não funcionará mais? (Exemplo, mudou o nome de uma tabela de banco de dados?)

questionAnswers(3)

yourAnswerToTheQuestion