Model-R / Front-end

Interface web do Model-R
Other
0 stars 0 forks source link

Estrutura simplificada para o JSON #4

Closed gmgall closed 6 years ago

gmgall commented 7 years ago

:warning: OBS: abaixo estou usando os termos object e array com o significado que eles têm na documentação oficial do padrão JSON. A biblioteca json do Python os transforma em dicionários e listas, respectivamente. Não sei como é no PHP.

Uma consulta a todos os experimentos hoje retorna um JSON como o seguinte:

{
    "experiment": [
        {
            "buffer": "",
            "description": "Tapirira",
            "extent_model": "",
            "idexperiment": "072b030ba126b2f4b2374f342be9ed44",
            "name": "Tapirira",
            "num_partition": "",
            "num_points": "",
            "occurence": [
                {
                    "idstatusoccurrence": "2",
                    "lat": "-22.500000",
                    "long": "-42.250000",
                    "taxon": "Tapirira guianensis Aubl."
                },
...
            "partitiontype": "",
            "statusexperiment": "Aguardando ",
            "tss": ""
        },
        {
            "buffer": "",
            "description": "teste242",
            "extent_model": "",
            "idexperiment": "093f65e080a295f8076b1c5722a46aa2",
            "name": "teste242",
            "num_partition": "",
            "num_points": "",
            "occurence": [
                {
                    "idstatusoccurrence": "2",
                    "lat": "-22.771667",
                    "long": "-43.000278",
                    "taxon": "Euterpe edulis Mart."
                },
                {
                    "idstatusoccurrence": "2",
                    "lat": "-22.771667",
                    "long": "-43.000278",
                    "taxon": "Euterpe edulis Mart."
                },
...
            "partitiontype": "",
            "statusexperiment": "Processado",
            "tss": ""
        },
...
    ]
}

Ou seja, cada experimento é um object com values que o descrevem. Eles estão contidos num array de experimentos. Até aí, acho que faz sentido.

Esse array de experimentos está contido num object com uma chave experiment. Acho isso desnecessário. O array de experimentos poderia ser retornado diretamente.

Da maneira que é hoje, sempre que preciso trabalhar com a lista de experimentos preciso antes fazer

all_exp_list = all_exp_dict['experiment']
FelipeSBarros commented 7 years ago

Fiz besteira, pessoal. Desculpem-me.

rafaeloliveiralima commented 6 years ago

@gmgall fiz a alteração na exportação do JSON Agora o resultado está assim:

[
{
"idexperiment":"7647966b7343c29048673252e490f736", "id":"89", "name":"Teste Marcos", "description":"Teste Marcos", "num_partition":"", "extent_model":"", "buffer":"", "num_points":"", "tss":"", "statusexperiment":"Aguardando", "partitiontype":"", "occurrences":[
{
"taxon":"prepusa montana

Caso tenha problema, avise para voltar a versão anterior. Att Rafael Lima

gmgall commented 6 years ago

Fiz uma referência a essa issue em Model-R/Middleware@95d842ddf5a2790ed74c8ceffb8ff6d708ed40d0. Não citei o commit que implementa a mudança descrita acima porque não o encontrei. Pode ser interessante citá-lo aqui também.

gmgall commented 6 years ago

Esse método voltou a funcionar da maneira antiga, como descrevi na mensagem de abertura dessa issue.

A alteração que o @rafaeloliveiralima comentou que fez em 23 de outubro não está mais presente:

$ curl https://model-r.jbrj.gov.br/ws/?status=3 | python -m json.tool | head -n 20
{
    "experiment": [
        {
            "algorithm": [
                {
                    "algorithm": "Maxent",
                    "idalgorithm": "2"
                },
                {
                    "algorithm": "Bioclim",
                    "idalgorithm": "5"
                }
            ],
            "buffer": "mean",
            "description": "novo_04_18",
            "extent_model": "",
            "id": "280",
            "idexperiment": "92c8c96e4c37100777c7190b76d28233",
            "name": "novo_04_18",
            "num_partition": "3",
antunesmg commented 6 years ago

Ajustei Guilherme, pode testar de novo, por favor ?

diogosbr commented 6 years ago

@gmgall e @antunesmg , podemos então fechar essa issue?

gmgall commented 6 years ago

Testei e o método funciona conforme proposto. :ok: