在 powershell 函数中调用 Rest API

Call Rest API inside powershell function

我已经使用 powershell 函数调用了 Rest API,但我需要从所有对象(如英格兰和威尔士、苏格兰、北爱尔兰)获取日期条目。使用此 $list.'england-and-wales'.events.date 我将仅获得英格兰和威尔士的详细信息,但我无法获取剩余的苏格兰、北爱尔兰日期

function Get-Holiday {
  Invoke-RestMethod -Method Get -Uri https://www.gov.uk/bank-holidays.json

}
$list = Get-Holiday
$list | ConvertTo-Json -Depth 3
$list.'england-and-wales'.events.date

我需要从所有英格兰和威尔士、苏格兰、北爱尔兰获取日期条目。你能提供解决方案吗

示例图片

如果您想合并所有三个数据集中的日期,您可以这样做:

# define divisions
$divisions = 'england-and-wales', 'scotland', 'northern-ireland'

# fetch data 
$list = Invoke-RestMethod -Method Get -Uri https://www.gov.uk/bank-holidays.json

# enumerate dates for all divisions, remove duplicates and assign to a variable
$allPossibleHolidayDates = $divisions |%{ $list.$_.events.date} |Sort -Unique

此时您可以通过以下方式确定某个日期是否为节假日:

# Get a string representing todays date formatted like "2020-11-18"
$todaysDate = Get-Date -Format 'yyyy-MM-dd'

# this will now return $true if today is a holiday in any of the divisions
$allPossibleHolidayDates -contains $todaysDate