REST 中通过另一个资源 ID 命名获取资源的做法是什么
What is the practice in REST to name getting a resource by another resource ID
我正在按城市服务创建 RESTful 天气,即客户知道城市 ID 并希望从该城市接收 JSON 的天气报告。例如:
{temperature:xxx, humidity:xxx, pressure:xxx}
两期:
- Get URL 应该是什么? (我的第一个想法:
api/v1/WeatherByCityId/{cityid
)但它看起来很原始和凌乱......或者可以吗?
- 我是否需要创建两个实体:
City (table="cities")
和 Weather (table="weathers")
并建立关系?或者更好地创建一个实体 WeathersCities(table="weathers_cities")
(或其他...)?
(我不会使用第三方天气服务,请不要推荐RestTemplate、WebClient、FeignClient等。是的,我会每小时自己填充天气数据。
假设您想获取一个城市的天气,让我们将城市单独存储在 City
table 中,并将 City Id
作为主键并将所有天气相关通过保留外键城市 ID table Weather
中单独的城市数据。
RESTAPI 就是这样。
https://yourdomain.com/api/v1/city/{cityId}/weather
如果您的应用程序的范围可能会在以后增加,那么您可以重复使用相同的 table 原则,然后 RESTAPI 将是
https://yourdomain.com/api/v1/city/{cityId}?parameter=any_entity_you_have_mapped_with_city
To summarize this, If your APP is just going to be about weather in the city then having a same table for both entities is okay. However, if you want that your APP can be used for querying a lot of other information about multiple entities like population, schools, etc then having a seperate table is a much better approach. I would recommend keeping seperate tables for the 2. This approach also makes the DB highly manageable. Let me know if you have some questions. Hope this helps :)
首选城市与天气的一对多映射。
您的天气 table 将 city_id 作为映射的外键。
您建议的 URL 是一个很好的方法,如果您要进行 GET 映射,将更容易维护。
api/v1/weather/{cityid}
这样用起来会更灵活
我正在按城市服务创建 RESTful 天气,即客户知道城市 ID 并希望从该城市接收 JSON 的天气报告。例如:
{temperature:xxx, humidity:xxx, pressure:xxx}
两期:
- Get URL 应该是什么? (我的第一个想法:
api/v1/WeatherByCityId/{cityid
)但它看起来很原始和凌乱......或者可以吗? - 我是否需要创建两个实体:
City (table="cities")
和Weather (table="weathers")
并建立关系?或者更好地创建一个实体WeathersCities(table="weathers_cities")
(或其他...)?
(我不会使用第三方天气服务,请不要推荐RestTemplate、WebClient、FeignClient等。是的,我会每小时自己填充天气数据。
假设您想获取一个城市的天气,让我们将城市单独存储在 City
table 中,并将 City Id
作为主键并将所有天气相关通过保留外键城市 ID table Weather
中单独的城市数据。
RESTAPI 就是这样。
https://yourdomain.com/api/v1/city/{cityId}/weather
如果您的应用程序的范围可能会在以后增加,那么您可以重复使用相同的 table 原则,然后 RESTAPI 将是
https://yourdomain.com/api/v1/city/{cityId}?parameter=any_entity_you_have_mapped_with_city
To summarize this, If your APP is just going to be about weather in the city then having a same table for both entities is okay. However, if you want that your APP can be used for querying a lot of other information about multiple entities like population, schools, etc then having a seperate table is a much better approach. I would recommend keeping seperate tables for the 2. This approach also makes the DB highly manageable. Let me know if you have some questions. Hope this helps :)
首选城市与天气的一对多映射。 您的天气 table 将 city_id 作为映射的外键。
您建议的 URL 是一个很好的方法,如果您要进行 GET 映射,将更容易维护。
api/v1/weather/{cityid}
这样用起来会更灵活