SpaceX的代码开源了,来看看火箭技术的代码.Spacex Rest API设计很有参考价值

SpaceX

世界上可以拥有载人航天技术是美俄中马。其中只有马斯克的SpaceX属于民营商用企业。

地址

https://github.com/r-spacex/SpaceX-API

API效果

GET https://api.spacexdata.com/v3/launches/latest

返回值

{
   "flight_number": 95,
   "mission_name": "Starlink 7",
   "mission_id": [

   ],
   "launch_year": "2020",
   "launch_date_unix": 1591233900,
   "launch_date_utc": "2020-06-04T01:25:00.000Z",
   "launch_date_local": "2020-06-03T21:25:00-04:00",
   "is_tentative": false,
   "tentative_max_precision": "hour",
   "tbd": false,
   "launch_window": null,
   "rocket": {
      "rocket_id": "falcon9",
      "rocket_name": "Falcon 9",
      "rocket_type": "FT",
      "first_stage": {
         "cores": [
            {
               "core_serial": "B1049",
               "flight": 5,
               "block": 5,
               "gridfins": true,
               "legs": true,
               "reused": true,
               "land_success": true,
               "landing_intent": true,
               "landing_type": "ASDS",
               "landing_vehicle": "JRTI"
            }
         ]
      },
      "second_stage": {
         "block": 5,
         "payloads": [
            {
               "payload_id": "Starlink 7",
               "norad_id": [

               ],
               "reused": false,
               "customers": [
                  "SpaceX"
               ],
               "nationality": "United States",
               "manufacturer": "SpaceX",
               "payload_type": "Satellite",
               "payload_mass_kg": 15400,
               "payload_mass_lbs": 33951.2,
               "orbit": "VLEO",
               "orbit_params": {
                  "reference_system": "geocentric",
                  "regime": "very-low-earth",
                  "longitude": null,
                  "semi_major_axis_km": null,
                  "eccentricity": null,
                  "periapsis_km": null,
                  "apoapsis_km": null,
                  "inclination_deg": null,
                  "period_min": null,
                  "lifespan_years": null,
                  "epoch": null,
                  "mean_motion": null,
                  "raan": null,
                  "arg_of_pericenter": null,
                  "mean_anomaly": null
               }
            }
         ]
      },
      "fairings": {
         "reused": false,
         "recovery_attempt": true,
         "recovered": null,
         "ship": "GOMSTREE"
      }
   },
   "ships": [

   ],
   "telemetry": {
      "flight_club": null
   },
   "launch_site": {
      "site_id": "ccafs_slc_40",
      "site_name": "CCAFS SLC 40",
      "site_name_long": "Cape Canaveral Air Force Station Space Launch Complex 40"
   },
   "launch_success": true,
   "links": {
      "mission_patch": "https://images2.imgbox.com/d2/3b/bQaWiil0_o.png",
      "mission_patch_small": "https://images2.imgbox.com/9a/96/nLppz9HW_o.png",
      "reddit_campaign": "https://www.reddit.com/r/spacex/comments/gamcbr/starlink7_launch_campaign_thread/",
      "reddit_launch": "https://www.reddit.com/r/spacex/comments/gkfe30/rspacex_starlink_7_official_launch_discussion/",
      "reddit_recovery": null,
      "reddit_media": null,
      "presskit": "https://spacextimemachine.com/assets/press_kits/185.pdf",
      "article_link": null,
      "wikipedia": null,
      "video_link": "https://youtu.be/y4xBFHjkUvw",
      "youtube_id": "y4xBFHjkUvw",
      "flickr_images": [
         "https://live.staticflickr.com/65535/49971196871_a0462d0084_o.jpg",
         "https://live.staticflickr.com/65535/49970682603_e6333945ee_o.jpg"
      ]
   },
   "details": "This mission will launch the seventh batch of operational Starlink satellites, which are expected to be version 1.0, from SLC-40, Cape Canaveral AFS. It is the eighth Starlink launch overall. The satellites will be delivered to low Earth orbit and will spend a few weeks maneuvering to their operational altitude of 550 km. The booster for this mission is expected to land on JRTI on its first mission since arriving at Port Canaveral.",
   "upcoming": false,
   "static_fire_date_utc": "2020-05-13T11:11:00.000Z",
   "static_fire_date_unix": 1589368260,
   "timeline": null,
   "crew": null,
   "last_date_update": "2020-06-03T15:45:37.000Z",
   "last_ll_launch_date": "2020-06-04T01:25:00.000Z",
   "last_ll_update": "2020-06-03T15:45:37.000Z",
   "last_wiki_launch_date": "2020-06-04T01:25:00.000Z",
   "last_wiki_revision": "f7d37887-a36e-11ea-8ba2-0e4dda687887",
   "last_wiki_update": "2020-05-31T18:45:59.000Z",
   "launch_date_source": "launch_library"
}

SpaceX API Docs

https://docs.spacexdata.com/?version=latest

这里有完整的postman请求测试用例。api的说明文档。

各种编程语言的客户端

支持Python,Go,Rust,Ruby 等主流的客户端。但并没有给出Java …难不成Java 已经脱离了主流…
https://github.com/r-spacex/SpaceX-API/blob/master/docs/clients.md

Apps / UI clients

支持主流的web,ios,Android

总结

文档非常的详细,可以作为我们设计Rest APi 的参考。包括文档,接口的设计情况。对我们的开发还是有很大的帮助。
见证过优秀的代码,可以让自己变得更加优秀。

像SpaceX一样,一飞冲天。

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章