Wolfram Language

Interfaces da web e da nuvem

Controle a resposta da web para rastreador da Estação Espacial Internacional

Você pode controlar as propriedades exatas da resposta da HTTP de um objeto da nuvem através do retorno de uma HTTPResponse. As condições de erro podem ser manipuladas com HTTPErrorResponse.

Defina uma função que encontre a cidade mais próxima da localização atual da Estação Espacial Internacional. A estação espacial se move rapidamente, com isso os resultados mudam rapidamente.

mostre o input completo da Wolfram Language
In[1]:=
Click for copyable input
issLocationDisplay[] := Module[{pos, posline, country, city, distance}, {pos, posline} = SatelliteData[ Entity["Satellite", "25544"], {"Position", "PositionLine"}]; country = First[GeoNearest["Country", pos]]; distance = Round[GeoDistance[pos, country], 0.1]; Panel@Column[{Row[{"ISS Position: ", Style[If[distance <= Quantity[0., "Miles"], "over " <> First[GeoNearest["City", pos]]["Name"] <> ", " <> country["Name"], ToString[ Row[{"over the open sea ", distance, " from ", country["Name"]}]]], Darker[Blue]]}, BaseStyle -> Directive["FontFamily" -> "SansSerif", RGBColor["#497CA4"], Larger, Bold]], GeoGraphics[{Gray, Thickness[.005], Arrowheads[{{0.05, 0.4}, {0.05, 0.13}}], Arrow @@ posline, Red, PointSize[.01], Point[pos], Opacity[.1], Black, GeoVisibleRegion[pos]}, GeoCenter -> pos, GeoRange -> "World", ImageSize -> 600]}]]
In[2]:=
Click for copyable input
issLocationDisplay[]
Out[2]=

Implemente um objeto da nuvem que calcule o resultado todas as vezes, usando HTTPResponse para indicar o tipo de conteúdo e especificar um cabeçalho que diz ao navegador para não armazenar em cache o resultado.

In[3]:=
Click for copyable input
obj = CloudDeploy[ Delayed[HTTPResponse[ ExportString[issLocationDisplay[], "PNG"], <| "ContentType" -> "image/png", "Headers" -> {"Cache-Control" -> "no-cache"}|>]], CloudObject["iss-location"], Permissions -> "Public"]
Out[3]=

Proiba que determinados usuários utilizem o objeto da nuvem, retornando um HTTPErrorResponse.

In[4]:=
Click for copyable input
obj = CloudDeploy[Delayed[ If[MemberQ[{"badapple@example.com", "blackhat@example.com", "spammer@example.com"}, $WolframID], HTTPErrorResponse[403], HTTPResponse[ issLocationDisplay[], <| "Headers" -> {"Cache-Control" -> "no-cache"}|>] ]], CloudObject["iss-location"], Permissions -> "Public"]
Out[4]=

Exemplos Relacionados

de en es fr ja ko ru zh