Sei sulla pagina 1di 9

Proposta de desenvolvimento de storage para TvOD/Catch-UP TV

Versão 1.0.1
Abaixo segue documentação da API REST com os parâmetros passados
codifcados em JSON, que será desenvovvida para atender as necessidades de
TvOD/Catch-UP TV da Life. O objetivo com essa documentação é especifcar a
interface utivizada na sovução e utivizar essa especifcação como base para
avinhamento de todos os desenvovvimentos que ocorrerão concorrentemente,
assim como a reavização da estimativa de esforço para desenvovvimento da
sovução. A API consistirá em 3 serviços, sendo eves dividos em, gravações,
pvaybacks e conteúdo armazenado.

Observações importantes:
- Na maioria* das API’s há o parâmetro ID que é passado na própria URL. Esse ID é
único para cada canav sendo gravado e reproduzido por servidor de storage (por
máquina). Atenção, se for utivizada a mesma ID para dois canais, haverá
corrupção de dados.
- Em todas as API’s com métodos POST é passado o parâmetro path como
parâmetro de dados. Esse parâmetro serve para identifcar em quav disco rígido
será armazenado o canav. Por exempvo, se uma máquina storage possuir 4 discos
rígidos montados nos caminhos /mnt/storage1, /mnt/storage2, /mnt/storage3,
/mnt/storage4, esses são os possíveis parâmetros a ser passados na chamada da
API.

*exceto as chamadas de veitura que retornam todas as reproduções ou gravações


em andamento.

www.e1m.com.br
Gravações – método GET
Get – veitura dos parâmetros de uma gravação específca ou entao vistar todas as gravações
em andamento.

 URL
api/v1.0/recorder/:id

 Paramêtro opcional da URL:


 ID da gravação: id=[inteiro]

 Parâmetros de dados
 Nenhum

 Resultados:

 Quando o envio da requisição é feito SEM o parâmetro de ID na URL, é


retornado uma lista contendo todas as gravações em funcionamento no
storage:
 Código: 200 – OK
Conteúdo: {running_recorders,
{ id : 12, ip_addr : 224.0.20.21, ip_port: 7002, iface:
192.168.20.21, path: /mnt/storage1/, window_time: 604800 },
{ id : 13, ip_addr : 224.0.20.22, ip_port: 7002, iface:
192.168.20.21, path: /mnt/storage1/, window_time: 604800 }
}

 Quando o envio da requisição é feito COM o parâmetro de ID na URL, é


retornado apenas as informações da respectiva gravação, ou então o
código 404 – NOT FOUND, se a gravação com a respectiva ID não estiver
rodando:
 Código: 200 – OK
Conteúdo: { id : 12, ip_addr : 224.0.20.21, ip_port: 7002,
iface: 192.168.20.21, path: /mnt/storage1/, window_time:
604800 }

ou

 Código: 404 – Not found


Conteúdo: Nenhum

www.e1m.com.br
Gravações – método POST
POST – Inicia uma gravação

 URL
api/v1.0/recorder/:id

 Paramêtro obrigatório da URL:


 ID da gravação: id=[inteiro]

 Parâmetros de dados
 ip_addr: endereço IP multicast no qual será feita a captura
 ip_port: porta que deverá ser feita a captura
 iface: interface de rede na qual deve ser feita a captura
 path: caminho no storage para armazenamento do fluxo
 window_time: tempo em segundos que deve ser armazenado o fluxo (p. ex.
uma semana = 60seg*60min*24horas*7dias = 604800 segundos)

 Resultados:

 Código: 200 – OK
Conteúdo: { id : 12, ip_addr : 224.0.20.21, ip_port: 10000,
iface: 192.168.20.21, path: /mnt/storage1/, window_time: 604800 }

ou

 Código: 404 – Not found


Conteúdo: { reason_id: X, reason_str: ‘xxx xxxxxxxx xxx’}
O conteúdo do retorno serve informar por que o serviço não
pode ser iniciado. Abaixo seguem as possíveis razões
ID – Reason
0 - caminho (path) não encontrado
1 - interface de rede (iface) não encontrada

www.e1m.com.br
Gravações – método DELETE
DELETE – Encerra uma gravação e apaga todo o seu conteúdo

 URL
api/v1.0/recorder/:id

 Paramêtro obrigatório da URL:


 ID da gravação: id=[inteiro]

 Parâmetros de dados
 erase_files: se ‘True’ apaga todo o conteúdo gravado relativo aquele
ID. Se ‘False’, deixa o conteúdo armazenado.

 Resultados:

 Código: 200 – OK
Conteúdo: { id : 12, ip_addr : 224.0.20.21, ip_port: 10000,
iface: 192.168.20.21, path: /mnt/storage1/, window_time: 604800 }

ou

 Código: 404 – Not found


Conteúdo: { reason_id: X, reason_str: ‘xxx xxxxxxxx xxx’}
O conteúdo do retorno serve informar por que o serviço não
pode ser iniciado. Abaixo seguem as possíveis razões
ID – Reason
0 - gravação (ID) não encontrada

www.e1m.com.br
Playbacks – método GET
Get – veitura dos parâmetros de uma reprodução específca ou entao vistar todas as
reproduções em andamento - se ID na chamada for inexistente

 URL
api/v1.0/pvayer/:id

 Paramêtro opcional da URL:


 ID da reprodução: id=[inteiro]

 Parâmetros de dados
 Nenhum

 Resultados:

 Quando o envio da requisição é feito SEM o parâmetro de ID na URL, é


retornado uma lista contendo todas as reproduções em funcionamento no
storage:
 Código: 200 – OK
Conteúdo: {running_players,
{ id : 12, ip_addr : 10.50.0.21, ip_port: 11000, iface:
192.168.20.21, path: /mnt/storage1/ },
{ id : 13, ip_addr : 10.50.00.160, ip_port: 11000, iface:
192.168.20.21, path: /mnt/storage1/ },
}

 Quando o envio da requisição é feito COM o parâmetro de ID na URL, é


retornado apenas as informações da respectiva reprodução, ou então o
código 404 – NOT FOUND, se a gravação com a respectiva ID não estiver
rodando:
 Código: 200 – OK
Conteúdo: { id : 12, ip_addr : 10.50.0.21, ip_port: 11000,
iface: 192.168.20.21, path: /mnt/storage1/ }

ou

 Código: 404 – Not found


Conteúdo: Nenhum

www.e1m.com.br
Playbacks – método POST
POST – Inicia uma reprodução

 URL
api/v1.0/pvayer/:id

 Paramêtro obrigatório da URL:


 ID da reprodução: id=[inteiro]

 Parâmetros de dados
 ip_addr: endereço IP multicast no qual será feita a captura
 ip_port: porta que deverá ser feita a captura
 iface: interface de rede na qual deve ser feita a captura
 path: caminho no storage para armazenamento do fluxo
 kseconds: tempo em segundos a partir do instante atual que deve ser
iniciada a reprodução. P.ex. Iniciar reprodução de 1 hora atrás, o
kseconds deve ser 60seg*60min = 3600

 Resultados:

 Código: 200 – OK
Conteúdo: { id : 12, ip_addr : 10.50.0.21, ip_port: 11000,
iface: 192.168.20.21, path: /mnt/storage1/, kseconds: 7200 }

ou

 Código: 404 – Not found


Conteúdo: { reason_id: X, reason_str: ‘xxx xxxxxxxx xxx’}
O conteúdo do retorno serve informar por que o serviço não
pode ser iniciado. Abaixo seguem as possíveis razões
ID – Reason
0 - conteúdo do ID não encontrado
1 - interface de rede (iface) não encontrada

www.e1m.com.br
Playbacks – método DELETE
DELETE – Encerra uma reprodução

 URL
api/v1.0/pvayer/:id

 Paramêtro obrigatório da URL:


 ID da reprodução: id=[inteiro]

 Parâmetros de dados
 Nenhum

 Resultados:

 Código: 200 – OK
Conteúdo: { id : 12, ip_addr : 10.50.0.21, ip_port: 11000,
iface: 192.168.20.21, path: /mnt/storage1/, kseconds: 7200 }

ou

 Código: 404 – Not found


Conteúdo: { reason_id: X, reason_str: ‘xxx xxxxxxxx xxx’}
O conteúdo do retorno serve informar por que o serviço não
pode ser iniciado. Abaixo seguem as possíveis razões
ID – Reason
0 - reprodução (ID) não encontrada

www.e1m.com.br
Conteúdo armazenado – método GET
Get – retorna dados sobre o conteúdo armazenado de um ID específco

 URL
api/v1.0/entitvement/:id

 Paramêtro opcional da URL:


 ID da entitvement: id=[inteiro]

 Parâmetros de dados
 path: caminho no storage para armazenamento do fluxo

 Resultados:

 Quando o envio da requisição é feito SEM o parâmetro de ID na URL, é


retornado uma lista contendo todas os conteúdos gravados no caminho do
storage:
 Código: 200 – OK
Conteúdo: {entitlements,
{ id : 12, path: /mnt/storage1/, kseconds: {3600, 7200, 10800} },
{ id : 13, path: /mnt/storage2/, kseconds: {3600, 7200, 10800} },
}

 Quando o envio da requisição é feito COM o parâmetro de ID na URL, é


retornado apenas as informações do respectivo conteúdo gravado, ou
então o código 404 – NOT FOUND, se não houver conteúdo:
 Código: 200 – OK
Conteúdo: { id : 12, path: /mnt/storage1, kseconds: {3600,
7200, 10800} }

ou

 Código: 404 – Not found


Conteúdo: Nenhum

www.e1m.com.br
Conteúdo armazenado – método DELETE
DELETE – Apaga um conteúdo armazenado

 URL
api/v1.0/entitvement/:id

 Paramêtro obrigatório da URL:


 ID do conteúdo gravado: id=[inteiro]

 Parâmetros de dados
 path: caminho no storage para armazenamento do fluxo
 kseconds: tempo em segundos contados a partir do tempo atual.
Será considerado que cada conteúdo é um bloco de 3600 segundos -
1 hora. Logo, para remover um conteúdo, deverá ser informado
qualquer segundo dentro daquele bloco, p.ex para apagar o bloco
gravado que contém o programa que rodou de 2 horas até 1 hora
atrás, o parâmetro kseconds pode ser qualquer valor entre 3600 –
7199.
 Resultados:

 Código: 200 – OK
Conteúdo: { id : 12, path: /mnt/storage1, kseconds: 3600 }

ou

 Código: 404 – Not found


Conteúdo: { reason_id: X, reason_str: ‘xxx xxxxxxxx xxx’}
O conteúdo do retorno serve informar por que o serviço não
pode ser iniciado. Abaixo seguem as possíveis razões
ID – Reason
0 - conteúdo não encontrado

www.e1m.com.br

Potrebbero piacerti anche